예전에 화살표 함수를 너무 쓰면 안된다고만 들었는데 오늘 한번 검색해서 알아봤다.
안되는 이유는 크게 두가지가 있었다.
this
를 사용할 경우 this
는 객체가 아니라 상위 스코프인 window
전역 객체를 가르킨다고 한다.반대로 콜백함수 내에서의 this를 부를 때 화살표 함수를 사용하는 방법도있다고한다.
let obj = {
myVar: 'foo',
myFunc: function() {
console.log(this.myVar)
setTimeout(() => {
console.log(this.myVar)
}, 1000)
}
}
obj.myFunc() // foo ... then... foo
[JavaScript]화살표 함수를 사용하면 안 되는 경우
[Javascript] ES6 화살표 함수는 언제 쓰고, 왜 쓸까?