J'ai trouvé une valeur inattendue de ce mot clé dans l'exemple suivant:
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
La valeur de ce mot clé est l'objet x comme s'il était exécuté à partir de cet objet, je m'attends à ce que seule la fonction get qui a ce mot clé soit égale à l'objet appelant x
cet exemple nous montre la différence
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
Dans les deux exemples, func1, qui est la fonction getter, et func2, qui est une méthode de l'objet, sont exécutés à partir de l'objet x , et la fonction renvoyée est ensuite exécutée. Alors pourquoi cette valeur dans le premier exemple n'est pas égale à l'objet global au lieu de l'objet x .
x.func1()
.