this는 상황에 따라서 계속해서 달라진다. this에 대해서 알아보기 위해서 console.log를 여러 곳에서 찍어보자.
// console.log(window); 와 같다.
console.log(this);
let person = {
firstName: "",
lastName: "",
fullName: function(){
return this.firstName + " " + this.lastName;
}
};
console.log(person.fullName());
function thisFunction() {
console.log(this); // this는 window
function insideFunc(){
console.log(this); // this는 window
}
}
// 해당 this는 속해있는 element인 button을 뜻하므로, button의 배경색이 blue가 된다.
<button type="button" onclick="this.style.backgroundColor="blue">클릭1</button>
// callFunc에 this를 던져주는데, this는 해당 element인 button이다.
<button type="button" onclick=callFunc(this)>클릭2</button>
function callFunc(obj){
console.log(obj)
}