五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

關(guān)于變量賦值過程、自執(zhí)行函數(shù)、作用域、this指向的個坑:

2021-03-16 19:22 作者:刂C刂C刂  | 我要投稿


執(zhí)行報錯:obj is undefined?

原因在于:對象obj 中的 fn 屬性值為一個立即執(zhí)行函數(shù)。將obj的值指向obj這個變量 完成賦值,是在立即執(zhí)行函數(shù)執(zhí)行之后。

修改傳入的實參為 n
輸出結(jié)果

// 代碼執(zhí)行過程:
1.變量提升,賦值。
2.obj完成賦值前,立即執(zhí)行函數(shù)執(zhí)行。
??? 2.1 立即執(zhí)行函數(shù)變量提升,產(chǎn)生一個私有的局部變量 n。
??? 2.2 立即執(zhí)行函數(shù)的作用域為 window,傳入的實參值為全局變量n=1。
??? 2.3 私有變量n = 3*1;
??? 2.4 this.n 指向全局作用域,全局作用域下的n變?yōu)椋?。
??? 2.5 變量重復(fù)定義,私有變量n = 5。
??? 2.6 n=5 this.n=4。
??? 2.7 將這個函數(shù)作為值,返回給obj中的fn屬性。 ?

3.變量賦值完成,執(zhí)行后面的代碼
3.1 fn(3),函數(shù)沒有n,向上級作用域查找,n=5。 fn()在全局作用域下執(zhí)行,所以this指向全局作用域,this.n=4。 `console.log(m+(++n)) => 自增運算符,此時私有n = 6`

??????? 輸出結(jié)果為:5 4 9??
???

3.2 fn(3),函數(shù)沒有n,向上級作用域查找,n=6。 obj調(diào)用的fn(),所以this指向obj,this.n=2。
??????? 輸出結(jié)果為:6 2 10
???

3.4 輸出結(jié)果為:4 2???


這道題主要考查的有:

????? 變量賦值的過程:(1)聲明變量 (2)開辟內(nèi)存空間存儲值? (3)將值指向變量。

????? this的指向: 瀏覽器環(huán)境下,誰調(diào)用就指向誰。沒有調(diào)用基本就指向window,比如自執(zhí)行函數(shù)、setTimeout 這些window下的方法。

?????? 閉包:在3.1中,由于作用域鏈的關(guān)系,私有作用域的值并沒有銷毀。

關(guān)于變量賦值過程、自執(zhí)行函數(shù)、作用域、this指向的個坑:的評論 (共 條)

分享到微博請遵守國家法律
梁山县| 杂多县| 东丰县| 宁武县| 宝清县| 鄂伦春自治旗| 收藏| 白河县| 曲松县| 东源县| 社旗县| 特克斯县| 纳雍县| 梅州市| 贵溪市| 迁安市| 巴里| 甘谷县| 璧山县| 襄樊市| 汝州市| 淮南市| 逊克县| 讷河市| 鄂伦春自治旗| 云和县| 伊春市| 搜索| 尼玛县| 大丰市| 鹤岗市| 涡阳县| 濉溪县| 大连市| 什邡市| 大安市| 巧家县| 东城区| 潜山县| 哈巴河县| 丰原市|