第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

這里的this,為什么指向的是全局變量

var x =4;

? ? ?obj={

? ? ? ? ?x:3,

? ? ? ? ?bar:function(){

var x=2;

setTimeout(function(){

? ? var x=1;

? ? ?alert(this.x);

? ? ?},1000);

? ?}

};

obj.bar(); //4


正在回答

1 回答

在JavaScript中,我們可以通過重新聲明JavaScript變量,來覆蓋原來那個同名變量:

第一個x其實是window對象的屬性,

第二個x指的是obj對象的屬性,可以通過obj.x調(diào)用,

第三個x指的是bar函數(shù)中的局部變量,只能在bar函數(shù)中,才有效!

第四個也是局部變量,不同的是setTimeout()這個函數(shù)是window對象的方法。

那么this又是誰呢?this指的是調(diào)用當前函數(shù)的那個對象的x屬性!那個對象指的是window,所以,x指代的是第一個x,也就是全局變量!

你可以運行以下代碼,以便更好理解!

<script>
????????var?x?=4;
????????var?x?=?5;
????????alert(window.x);//5
?????????obj={
?????????????x:3,
?????????????bar:function(){
????????????????????var?x=2;
????????????????????setTimeout(function(){
????????????????????????var?x=1;
?????????????????????????alert(this.x);//4
?????????????????????????alert(window.x);//4
?????????????????????????},1000);
?????????????????????alert("obj-bar-x--->"+x);//2
???????????????}
????????????};
????????obj.bar();?//4
????????alert("obj.x--->"+obj.x);//3
????</script>


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

會飛的檸檬 提問者

謝謝解答
2016-01-03 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
JavaScript深入淺出
  • 參與學(xué)習(xí)       281098    人
  • 解答問題       1047    個

由淺入深學(xué)習(xí)JS語言特性,且解析JS常見誤區(qū),從入門到掌握

進入課程

這里的this,為什么指向的是全局變量

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號