Portée de la console Firebug. Pourquoi "ceci" n'est-il pas toujours le même? Il ne s'agissait pas de "fenêtre" tout le temps? P>
3 Réponses :
dans une fonction appelée directement sans un objet propriétaire explicite, provoque le valeur de
cette forte> être la défaillance Objet strong> (fenêtre dans le navigateur). p> dans une fonction appelée à l'aide de la méthode Syntaxe d'invocation, comme
objname.myfunction () code> ou
objname ['myfunction'] () code>, cause le valeur de ceci pour être objname. p> blockQuote>
Voir plus de fonctions d'appel d'abot dans JavaScript P>
Cette réponse est précise car elle ne résout pas la question en ce qui concerne le comportement de la console.
Le mot clé code> se réfère toujours au propriétaire de la fonction appelée. Vous pouvez lire une explication claire et détaillée sur celle-ci ici . P>
de l'article que j'ai connecté ci-dessus cette image que je pense explique le plus clairement: p>
La valeur de ... p> si vous mettez un point de rupture sur le Ceci code> dans la console sera identique à la valeur de
ceci code> dans le code actuellement exécuté. Considérez: -
x = {n: 12} Code> Ligne, passez à la console Vous trouverez le
Ceci code> est la fenêtre. Toutefois, lorsque vous entrez dans l'alerte code> line code> Ceci code> dans la console est l'objet détenu par la variable
x code>. IOW Il n'y a pas de distinction entre
ce code> dans le contexte d'exécution et la console. C'est pour cette raison que vous pouvez utiliser la console pour modifier des valeurs de variables et de propriétés lors du débogage. P> p>
Merci pour vous de répondre .. mais une question: Si je ne suis pas coincé dans un point d'arrêt, peut-il "ça" être autre que la fenêtre de la console?