J'ai testé un certain JavaScript en utilisant la console Google Chrome version 28.0.1500.95 m
et je cherche un peu plus de compréhension de la façon dont cela fonctionne: Consultez le code ci-dessous:
var obj = { a: 99, f: function() { } } console.log(obj.a) console.log(obj.z) console.log(obj) oz = 100;
Démonstration
Cela produit les résultats suivants:
99 undefined Object {a: 99, f: function} a: 99 f: function () { } z: 100 __proto__: Object
Ma question est la suivante: pourquoi z
est-il visible dans les résultats lorsqu'il n'a pas été déclaré avant le journal?
Je suppose que c'est quelque chose avec la façon dont la console fonctionne et pas une règle de portée étrange dans JavaScript, que je ne suis pas au courant?
Quelqu'un peut-il me dire ce qui se passe ici s'il vous plaît?
L'objet dans la console initialement est affiché comme Object
et élargi lorsque vous cliquez sur la flèche.
Il y a une i-icône lorsque vous développez l'objet, lorsque vous le roulez, vous verrez la réponse:
L'état de l'objet ci-dessous est saisi lors de la première expansion
Ce que vous voyez après l'expansion est l'état de l'objet au moment de l'expansion, et non l'état au moment où vous appelez log()