Le script suivant produit « Bonjour », « non défini », « Hello » boîtes de message:fonction JavaScript comme rappel
function action(callback) {
window.setTimeout(callback, 1000);
}
var obj = {
text: "Hello",
f: function() { window.alert(this.text); }
};
obj.f(); // Line 1
action(obj.f); // Line 2
action(function() { obj.f(); }); // Line 3
Je recherche d'explication pourquoi la ligne marquée comme « Ligne 2 » produit une sortie « non défini » .
Les meilleures réponses sur 'ce sujet': http://stackoverflow.com/questions/80084/in-javascript-why-is-the- ce-opérateur incompatible avec/80478 # 80478 et http://stackoverflow.com/questions/541167/what-is-the-rationale-for-the-behavior-of-the-this-keyword-in-javascript/542060# 542060 –
La première référence est vraiment bonne – LicenseQ