Saya menemukan nilai tak terduga dari kata kunci ini dalam contoh berikut:
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
Nilai kata kunci ini adalah objek x seolah-olah dieksekusi dari objek itu, saya berharap hanya fungsi get yang memiliki kata kunci ini sama dengan objek panggilan x
contoh ini menunjukkan kepada kita perbedaannya
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
Dalam kedua contoh func1 yang merupakan fungsi pengambil, dan func2 yang merupakan metode objek, dieksekusi dari objek x , dan fungsi yang dikembalikan kemudian dieksekusi. Jadi mengapa nilai ini dalam contoh pertama tidak sama dengan objek global, bukan objek x .
x.func1()
.