Je commence tout juste à apprendre Javascript et j'ai joué avec des fonctions auto-exécutables anonymes. J'ai fait du code qui ne fonctionne pas comme je m'y attendais. Pourquoi le mot clé "this" est-il nécessaire pour obtenir la valeur de la variable "shoutIt" dans cette instance?Pourquoi ai-je besoin d'utiliser le mot-clé "this" pour accéder à un paramètre pour une fonction auto-exécutable anonyme?
La première alerte affiche "A-t-elle fonctionné? (1) indéfini" tandis que la seconde affiche "A-t-elle fonctionné? (2) [OUI!]".
Merci!
var shoutIt = "[YES!]";
//creating an anonymous, self-executing function
(
function (shoutIt) {
shoutItDebug = shoutIt;
shoutItDebug = this.shoutIt;
alert("Did it work? (1) " + shoutIt); //doesn't work, undefined
alert("Did it work? (2) " + this.shoutIt) //works
})();
Dans votre code, 'this' n'est pas la fonction,' this' est la portée globale. Mettez 'console.log (this)' dans votre fonction et vérifiez la sortie. – castis
Vous devez utiliser le mode strict, alors cela ne fonctionnerait pas comme prévu. – Bergi
Je ne savais pas qu'il y avait différents modes. Je vais allumer strict, merci. –