Encontré un valor inesperado de esta palabra clave en el siguiente ejemplo:
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
El valor de esta palabra clave es el objeto x como si se ejecutara desde ese objeto, espero que solo la función get que tiene esta palabra clave sea igual al objeto llamante x
este ejemplo nos muestra la diferencia
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
En ambos ejemplos, func1, que es la función getter, y func2, que es un método del objeto, se ejecutan desde el objeto x , y luego se ejecuta la función devuelta. Entonces, ¿por qué este valor en el primer ejemplo no es igual al objeto global en lugar del objeto x ?
x.func1()
.