Я обнаружил неожиданное значение этого ключевого слова в следующем примере:
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);
В обоих примерах func1 , который является функцией-получателем, и func2 , который является методом объекта, выполняются из объект x , и возвращаемая функция затем выполняется. Так почему это значение в первом примере не равно глобальному объекту вместо объекта x .