Open shinsehantan opened 3 years ago
화살표함수에서는 this가 존재하지 않는다. 만약 화살표 함수에 this가 있다면, 이는 화살표 함수 밖의 렉시컬 범위 안에서의 this를 사용한다. 함수 내부에 this가 없기 때문에 화살표 함수는 생성자 함수를 사용할 수 없다.
this
바인딩이 되지 않고 스코프 체인을 타고 올라가 상위 스코프 this
를 가리키는데, 이를 렉시컬 this
라고 합니다.화살표 함수로 객체의 메서드를 표현하는 것은 바람직 하지 않습니다. 왜냐하면, 화살표 함수의 this는 상위 스코프의 this, 즉 해당 메서드를 포함한 객체의 상위 스코프의 this를 가리키기 때문입니다.
const person = {
name: 'Lee',
sayHi: () => console.log(`Hi ${this.name}`)
};
person.sayHi(); // Hi undefined
화살표 함수는 함수 자체의 this 바인딩을 갖지 않습니다. 따라서 화살표 함수 내부에서 this를 참조하면 상위 스코프의 this를 그대로 참조합니다. 그리고 이것을 lexical this라고 합니다.
잇힝 1등이다 ><