国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

JS中這個(gè)關(guān)鍵字的理解

2024-05-06 15:45:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

大家都知道this這個(gè)關(guān)鍵詞,但是在JS中提出this關(guān)鍵字的問(wèn)題,在這里錯(cuò)新技術(shù)頻道小編將介紹對(duì)JS中這個(gè)關(guān)鍵字的理解,需要學(xué)習(xí)的朋友可以來(lái)參考一下。

所以拿出來(lái)與大家共勉:
先運(yùn)行以下的js代碼


我對(duì)這里的代碼的解釋:

foo.bar(); //打印foo
//1. alert隱式調(diào)用toString方法,轉(zhuǎn)型成字符串,在foo里重寫了toString方法,因此為foo

(foo.bar)();//打印foo
//2. 這里的執(zhí)行同上

(foo.bar || null)();
/*
3. 這里在IE6.0,Mozilla Firefox1.5.0.7和Opera9.0里有不同的效果,IE和Opera都是object,Mozilla的為foo
暫且不談這幾個(gè)的JS對(duì)||的解釋方法,這與bar方法中的this還有和||運(yùn)算符是有關(guān)的。經(jīng)過(guò)||之后
這里的this已經(jīng)不再為window了,this關(guān)鍵字的作用,如果按照C++的理解,應(yīng)該為動(dòng)態(tài)聯(lián)編,而非靜態(tài)聯(lián)編,我們平常的例子中

也就是說(shuō),這里this的作用域不再是foo對(duì)象,而是一個(gè)全局的作用域。因此alert(this)相當(dāng)于alert(window);
所以為object

BTW:有可能是||運(yùn)算符是要把兩個(gè)表達(dá)式的執(zhí)行轉(zhuǎn)換為全局范圍的比較,所以在IE和Opera中,這里(foo.bar || null)返回的是一個(gè)全局引用,即:
'bar': function () {
alert(this);//這里的this已經(jīng)為全局this,全局的this,即為window
},
詳細(xì)的,我將在篇末加入一段代碼,以示說(shuō)明
*/

bar = foo.bar; bar();//返回的是"[object Window]"
/*4.
這里在IE6.0,Mozilla Firefox1.5.0.7和Opera9.0里都為相同的object,如果理解上面的執(zhí)行,理解這句顯然會(huì)比較簡(jiǎn)單
理由同上,這里把foo.bar的引用給到一個(gè)全局變量bar,而全局變量都隸屬于window的引用,看下面代碼:
var a = 'never-online';
alert(this.a); //never-online
alert(window.a); //never-online
如果你嘗試著把bar = foo.bar; bar();改成以下代碼,或許就可以明白了
foo.alert = foo.bar; foo.alert ();
這里的foo.alert依然為foo對(duì)象的引用,因此foo對(duì)象里的this,在這里依然有效,并沒有成為window object
因?yàn)楹苊黠@的bar屬性window,因此引用foo.bar里雖然有this,但是this引用為window
*/

再看看我們把這個(gè)例子改成這樣:


這樣應(yīng)該明白原因了。

從這個(gè)例中(foo.bar || null)(); 可以看出Mozilla的解釋器會(huì)更“標(biāo)準(zhǔn)”一些,而Opera和IE的解釋方法則與Mozilla的不一樣。||運(yùn)算符的作用,出現(xiàn)了不同的效果。同我上面所說(shuō)的, 有可能是||運(yùn)算符是要把兩個(gè)表達(dá)式的執(zhí)行轉(zhuǎn)換為全局范圍的比較,所以在IE和Opera中,這里(foo.bar || null)返回的是一個(gè)全局引用

以上是錯(cuò)新技術(shù)頻道小編為大家搜集的JS中這個(gè)關(guān)鍵字的理解,希望對(duì)大家的學(xué)習(xí)有一定的幫助!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 肃宁县| 临城县| 电白县| 玉门市| 郎溪县| 兴宁市| 高碑店市| 开封县| 保靖县| 涟源市| 南昌县| 左权县| 枞阳县| 渭源县| 赤城县| 分宜县| 容城县| 庆云县| 新竹县| 丹阳市| 新田县| 富蕴县| 麻阳| 台南县| 辉南县| 沈阳市| 修武县| 乳山市| 遵化市| 钟山县| 宜宾市| 隆回县| 宁安市| 乃东县| 博爱县| 远安县| 息烽县| 玉门市| 江津市| 宣恩县| 柘城县|