最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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指向的個坑:的評論 (共 條)

分享到微博請遵守國家法律
舒城县| 洮南市| 汾西县| 北京市| 原平市| 盐城市| 六安市| 周口市| 湛江市| 宁都县| 尖扎县| 武城县| 龙山县| 遵义县| 城口县| 宁国市| 黄石市| 伽师县| 东乡族自治县| 梅州市| 宝丰县| 金寨县| 微博| 金塔县| 鱼台县| 南城县| 东山县| 晋江市| 武乡县| 凤翔县| 衡东县| 平顺县| 宁陵县| 射洪县| 平泉县| 宁安市| 茂名市| 普格县| 库尔勒市| 阿克| 乐平市|