var str="hello";【这个str,obj对象里可以读取】
var obj={
str:"world";
fun:function(){
alert(str);【这个str指obj外部str是【window.str简写】,想要弹出"world"需要使用,this.str,指定作用域。】
}
}
Parce que le str:"world" écrit dans votre objet obj signifie obj.str="world". Il s'agit d'une propriété, pas d'une variable. Ce qui apparaît dans le dernier obj.fun() que vous avez exécuté est la variable str, pas un attribut (bien sûr, c'est aussi un attribut de la fenêtre globale). Alors tu comprends ? Si vous alertez this.str ou obj.str, vous pouvez obtenir "world".
La variable str est en fait un attribut de window et n'a rien à voir avec l'attribut str de l'objet obj. Cela n'implique pas de problèmes de chaîne de portée. Ce que vous comprenez devrait être le suivant :
.
var str="hello";
function change(){
str="world";
alert(str)
}
change();
Dans cet exemple, la variable globale str est d'abord réaffectée lors du changement de fonction. Lorsque alert(str) doit être exécuté, la variable str est recherchée au point de départ de sa propre chaîne de portée, c'est-à-dire sa propre chaîne de portée. propre objet variable. S'il n'est pas trouvé, recherchez ensuite un niveau plus haut et trouvez la variable str, mais à ce moment, str a été réaffecté au monde, donc le monde apparaîtra.
Parce que le str:"world" écrit dans votre objet obj signifie obj.str="world". Il s'agit d'une propriété, pas d'une variable. Ce qui apparaît dans le dernier obj.fun() que vous avez exécuté est la variable str, pas un attribut (bien sûr, c'est aussi un attribut de la fenêtre globale). Alors tu comprends ? Si vous alertez this.str ou obj.str, vous pouvez obtenir "world".
La variable str est en fait un attribut de window et n'a rien à voir avec l'attribut str de l'objet obj. Cela n'implique pas de problèmes de chaîne de portée. Ce que vous comprenez devrait être le suivant :
.Dans cet exemple, la variable globale str est d'abord réaffectée lors du changement de fonction. Lorsque alert(str) doit être exécuté, la variable str est recherchée au point de départ de sa propre chaîne de portée, c'est-à-dire sa propre chaîne de portée. propre objet variable. S'il n'est pas trouvé, recherchez ensuite un niveau plus haut et trouvez la variable str, mais à ce moment, str a été réaffecté au monde, donc le monde apparaîtra.
Comprends-tu ?