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