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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教解釋一個關(guān)于javascript中this的函數(shù)?

請教解釋一個關(guān)于javascript中this的函數(shù)?

溫溫醬 2019-02-14 15:11:49
var aa=11; Test(); alert(aa); function Test() { var aa=33; alert(this.aa); this.aa = 22; alert(this.aa); alert(aa); } alert(new Test().aa); 我剛學(xué)JS,看上去很簡單的程序,最后的結(jié)果卻讓我糊涂,希望有朋友能不惜賜教下,給仔細解釋一下!謝謝了請別復(fù)制人家的,請解釋的更通俗易懂些。
查看完整描述

2 回答

?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

“通俗易懂些”說說我的理解。
js函數(shù)是一種對象。
new關(guān)鍵字可以將一個函數(shù)對象實例化為一個新的對象。
被實例化后,源對象內(nèi)的this將指向這個新的對象,否則如沒有用new實例化則this指向默認的頂層對象window。
如Test()和new Test()兩者的區(qū)別:前者僅僅執(zhí)行一次,this指向window,后者不僅執(zhí)行一次而且返回一個新的對象,實例化進行時其this指向一個空的對象(在內(nèi)存中),還沒給在個this所指對象添加aa屬性時alert(this.aa)是undefined。this.aa = 22; 給了這個對象增加了aa屬性,所以第二個alert(this.aa); 彈出22;
函數(shù)內(nèi)var aa=33; 這個aa!=this.aa,而且aa!=window.aa, 所以alert(aa) 彈出33;
最后alert(new Test().aa); (new Test())這個匿名對象已經(jīng)有了aa屬性,值為22,所以最后彈出22

查看完整回答
反對 回復(fù) 2019-03-25
?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

你這串程序,應(yīng)該是在解釋變量的生命周期吧。
第一個aa=11,是全局變量,在整個程序中都有效
然后在Test函數(shù)里邊那個var aa=33,那個相當(dāng)于私有變量,只在Test函數(shù)內(nèi)部才有效
this.aa=22,這個跟類變量差不多,是可以直接用類名訪問的變量,也就是靜態(tài)成員

查看完整回答
反對 回復(fù) 2019-03-25
  • 2 回答
  • 0 關(guān)注
  • 446 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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