Aşağıdaki örnekte bu anahtar kelimenin beklenmeyen bir değerini buldum :
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
Değeri bu anahtar kelime nesnesidir x o nesneden yürütüldüğünde sanki sadece bekliyoruz alma yönteminin sahip bu anahtar kelimeyi arayarak nesne eşittir x
bu örnek bize farkı gösterir
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
Her iki örnek de func1 alıcı fonksiyonu ve FUNC2 nesnesinin bir yöntem olup, nesne ile ilgili yürütülür x ve geri fonksiyonu daha sonra yürütülür. Öyleyse neden ilk örnekte bu değer x nesnesi yerine global nesneye eşit değildir .
x.func1()
.