Le problème dans l'exemple 1 est "présent", en référence à la dénomination globale au lieu de la myName objet.
Je comprends l'utilisation de bind() dans l'établissement de la valeur de ce à un objet spécifique, de sorte qu'il résout le problème dans l'exemple 1, mais pourquoi ce problème se produit en premier lieu? Est-ce juste la façon Javascript a été créé?
Je me demande aussi pourquoi l'exemple 3 résout le problème et la différence entre l'exemple 2 et 3.
this.name = "John"
var myName = {
name: "Tom",
getName: function() {
return this.name
}
}
var storeMyName = myName.getName; // example 1
var storeMyName2 = myName.getName.bind(myName); // example 2
var storeMyName3 = myName.getName(); // example 3
console.log("example 1: " + storeMyName()); // doesn't work
console.log("example 2: " + storeMyName2()); // works
console.log("example 3: " + storeMyName3); // works