6
votes

Portée de la fenêtre de la console Firebug. Pourquoi "ceci" n'est-il pas toujours le même?

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?


0 commentaires

3 Réponses :


2
votes

dans une fonction appelée directement sans un objet propriétaire explicite, provoque le valeur de cette être la défaillance Objet (fenêtre dans le navigateur).

dans une fonction appelée à l'aide de la méthode Syntaxe d'invocation, comme objname.myfunction () ou objname ['myfunction'] () , cause le valeur de ceci pour être objname.

Voir plus de fonctions d'appel d'abot dans JavaScript

JavaScript, 5 façons d'appeler une fonction


1 commentaires

Cette réponse est précise car elle ne résout pas la question en ce qui concerne le comportement de la console.



2
votes

Le mot clé 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 .

de l'article que j'ai connecté ci-dessus cette image que je pense explique le plus clairement:

 text alt


0 commentaires

3
votes

La valeur de Ceci dans la console sera identique à la valeur de ceci dans le code actuellement exécuté. Considérez: - xxx

... xxx

si vous mettez un point de rupture sur le x = {n: 12} Ligne, passez à la console Vous trouverez le Ceci est la fenêtre. Toutefois, lorsque vous entrez dans l'alerte line Ceci dans la console est l'objet détenu par la variable x . IOW Il n'y a pas de distinction entre ce 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.


1 commentaires

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?