国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

cha?ne de portée javascript
阿神
阿神 2017-05-19 10:28:18
0
5
654
var str="hello";
var obj={
   str:"world",
   fun:function(){
       alert(str);
       }
}
obj.fun(); //結果是hello

Pourquoi le résultat est bonjour, pas monde

阿神
阿神

閉關修行中......

répondre à tous(5)
滿天的星座
var str="hello";【這個str,obj對象里可以讀取】
var obj={
str:"world";
fun:function(){

   alert(str);【這個str指obj外部str是【window.str簡寫】,想要彈出"world"需要使用,this.str,指定作用域。】
   }

}
PHPzhong
var str="hello";
var obj={
str:"world",
fun:function(){
   alert(str) //window.str => 'hello'
   alert(this.str) // obj.str => 'world'
  }
}
小葫蘆

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.

洪濤
var str="hello";

var obj={
str:"world",
fun:function(str){
   console.log(window.str,this.str,str);
  }
}

obj.fun('!') //hello world !

Comprends-tu ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal