Encontrei um valor inesperado dessa palavra - chave no exemplo a seguir:
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
O valor dessa palavra-chave é o objeto x como se fosse executado a partir desse objeto. Espero que apenas a função get que tenha essa palavra - chave seja igual ao objeto que chama x
este exemplo mostra a diferença
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
Nos dois exemplos, func1, que é a função getter, e func2, que é um método do objeto, são executados a partir do objeto x , e a função retornada é executada. Então, por que esse valor no primeiro exemplo não é igual ao objeto global em vez do objeto x .
x.func1()
.