간단한 ES5 코드를 ES6으로 변환하려고하면 당황 스럽습니다.화살표 함수는 call, apply, bind를 사용합니다 - 작동하지 않습니까?
var obj = {num: 2}
var addToThis = function (a, b, c) {
return this.num + a + b + c
}
// call
console.log(addToThis.call(obj, 1, 2, 3))
// apply
const arr = [1, 2, 3]
console.log(addToThis.apply(obj, arr))
// bind
const bound = addToThis.bind(obj)
console.log(bound(1, 2, 3))
모든 위의 원활하고 예상대로 실행 :
의 내가 코드 블록 있다고 가정 해 봅시다.
하지만 최대한 빨리 다음과 같이 const를 화살표 기능 등 ES6 기능을 사용하기 시작하면 :
const obj = {num: 2}
const addToThis = (a, b, c) => {
return this.num + a + b + c
}
그것은 더 이상 작동 및 오류가 발생하지 않습니다이 : 정의되지 않은 재산 'NUM'을 읽을 수 없습니다.
누군가 this
이 더 이상 작동하지 않는 이유를 설명해주세요.