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

rantai skop javascript
阿神
阿神 2017-05-19 10:28:18
0
5
652
var str="hello";
var obj={
   str:"world",
   fun:function(){
       alert(str);
       }
}
obj.fun(); //結(jié)果是hello

Kenapa hasilnya hello, bukan dunia

阿神
阿神

閉關(guān)修行中......

membalas semua(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'
  }
}
小葫蘆

Kerana str:"world" yang ditulis dalam objek obj anda bermaksud obj.str="world". Ini adalah harta, bukan pembolehubah. Perkara yang muncul dalam obj.fun() terakhir yang anda jalankan ialah pembolehubah str, bukan atribut (sudah tentu ini juga merupakan atribut tetingkap global). Jadi awak faham? Jika anda memberi amaran this.str atau obj.str anda boleh mendapatkan "dunia".

左手右手慢動作

Str pembolehubah sebenarnya adalah atribut tetingkap dan tiada kaitan dengan atribut str objek obj. Ini tidak melibatkan isu rantaian skop Perkara yang anda faham hendaklah seperti berikut:

var str="hello";
function change(){
    str="world";
    alert(str)
}
change();

Dalam contoh ini, pembolehubah global mula-mula ditetapkan semula dalam perubahan fungsi Apabila anda ingin melaksanakan amaran(str), anda mencari pembolehubah str pada titik permulaan rantai skop anda sendiri, iaitu, dalam pembolehubah anda sendiri. objek. Jika anda mendapati ia tidak ditemui, teruskan carian Tahap 1 menemui pembolehubah str, tetapi pada masa ini str telah ditetapkan semula ke dunia, jadi dunia akan muncul.

洪濤
var str="hello";

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

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

Adakah anda faham?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan