자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수
함수를 호출 할 때, 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정
function func(){
console.log(this)
}
func(); // window
const value = 1;
const obj = {
value: 100,
foo: function() {
console.log("foo's this: ", this); // obj
console.log("foo's this.value: ", this.value); // 100
function bar() {
console.log("bar's this: ", this); // window
console.log("bar's this.value: ", this.value); // 1
}
bar();
}
};
obj.foo();
function Person(name,age) {
this.name = name,
this.age = age,
}
function PersonReturn(name, age) {
this.name = name,
this.age = age,
return {
name: "샐리",
age: 5
}
}
const 브라운 = new Person("브라운", 10); // (1)
const 코니 = new Person("코니", 8); // (2)
const 샐리 = new PersonReturn("레너드", 7);
console.log(샐리.name); // 샐리