Я знайшов несподіване значення цього ключового слова в наступному прикладі:
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()
.