2009-06-23 10 views
1

Considérez ce code:variables comme des propriétés en JavaScript

<script type="text/javascript"> 
    if ('mySuperProperty' in window) 
    { 
    alert(window['mySuperProperty']); 
    } 
    var mySuperProperty = 1; 
</script> 

État dans instruction if true même si mySuperProperty n'est pas encore défini. Pourquoi?

Try it yourself.

J'étole cette question de http://dfilatov.blogspot.com/2009/04/javascript.html (russe)

+1

Pourquoi ne pas cocher window.mySuperProperty? imo plus court et plus lisible. – anddoutoi

+0

Est-ce que c'est enveloppé dans une fonction ou simplement dans

1

L'expression « window.mySuperProperty » vérifie la valeur du mySuperProperty, qui est au moment de l'alerte non définie

D'autre part mySuperProperty dans la fenêtre vérifie si la fenêtre a le mySuperProperty, qui est vérifiée dans l'espace de nom de la fenêtre entière (après que chaque nom de propriété a été défini).

cet effet,

si ('mySuperProperty' dans la fenêtre) renvoie true> la variable existe, mais n'a pas de valeur encore si (window.mySuperProperty) retourne une valeur est Falsy false> non définie.

Questions connexes