다음 예 에서이 키워드 의 예상치 못한 값을 찾았습니다 .
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
의 값 이 키워드는 객체입니다 X 가 그 객체에서 실행되는 것처럼 내가에만 기대 get 함수 가 이 키워드는 호출 객체에 동일 X
이 예는 우리에게 차이점을 보여줍니다
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
두 예제 에서 getter 함수 인 func1 과 객체의 메소드 인 func2 가 객체 x 에서 실행 된 다음 반환 된 함수가 실행됩니다. 왜 이 첫 번째 예에서 값이 아닌 전역 객체가 아닌 객체에 동일 X .
3
정말 흥미로운 질문입니다. 나는이 주름이 전에는 결코 없었습니다.
—
TJ Crowder
" 그것은 그 객체에서 실행되는 것처럼 "-하지만이 되어 바로 해당 개체에서 실행 :
—
베르 기
x.func1()
.