摘要:前言曾經(jīng)被中的弄暈了,今天整理總結(jié)一下在嚴(yán)格模式下的幾種指向。嚴(yán)格模式構(gòu)造函數(shù)中的事件處理函數(shù)中的在嚴(yán)格模式下,在事件處理函數(shù)中,指向觸發(fā)事件的目標(biāo)對(duì)象。
前言
曾經(jīng)被 JavaScript 中的 this 弄暈了,今天整理總結(jié)一下在嚴(yán)格模式下 this 的幾種指向。
1. 全局作用域中的this在嚴(yán)格模式下,在全局作用域中,this指向window對(duì)象
"use strict"; console.log("嚴(yán)格模式"); console.log("在全局作用域中的this"); console.log("this.document === document",this.document === document); console.log("this === window",this === window); this.a = 9804; console.log("this.a === window.a===",window.a);2. 全局作用域中函數(shù)中的this
在嚴(yán)格模式下,這種函數(shù)中的this等于undefined
"use strict"; console.log("嚴(yán)格模式"); console.log("在全局作用域中函數(shù)中的this"); function f1(){ console.log(this); } function f2(){ function f3(){ console.log(this); } f3(); } f1(); f2();3. 對(duì)象的函數(shù)(方法)中的this
在嚴(yán)格模式下,對(duì)象的函數(shù)中的this指向調(diào)用函數(shù)的對(duì)象實(shí)例
"use strict"; console.log("嚴(yán)格模式"); console.log("在對(duì)象的函數(shù)中的this"); var o = new Object(); o.a = "o.a"; o.f5 = function(){ return this.a; } console.log(o.f5());4. 構(gòu)造函數(shù)的this
在嚴(yán)格模式下,構(gòu)造函數(shù)中的this指向構(gòu)造函數(shù)創(chuàng)建的對(duì)象實(shí)例。
"use strict"; console.log("嚴(yán)格模式"); console.log("構(gòu)造函數(shù)中的this"); function constru(){ this.a = "constru.a"; this.f2 = function(){ console.log(this.b); return this.a; } } var o2 = new constru(); o2.b = "o2.b"; console.log(o2.f2());5. 事件處理函數(shù)中的this
在嚴(yán)格模式下,在事件處理函數(shù)中,this指向觸發(fā)事件的目標(biāo)對(duì)象。
"use strict"; function blue_it(e){ if(this === e.target){ this.style.backgroundColor = "#00f"; } } var elements = document.getElementsByTagName("*"); for(var i=0 ; i6. 內(nèi)聯(lián)事件處理函數(shù)中的this 在嚴(yán)格模式下,在內(nèi)聯(lián)事件處理函數(shù)中,有以下兩種情況:
后語(yǔ)參考資料
MDN https://developer.mozilla.org...
延伸資料
阮一峰的網(wǎng)絡(luò)日志 > JavaScript 嚴(yán)格模式詳解 http://www.ruanyifeng.com/blo...
菜鳥教程 > JavaScript 嚴(yán)格模式 http://www.runoob.com/js/js-s...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/88319.html
摘要:前言初學(xué)總會(huì)對(duì)指向感到疑惑,想要深入學(xué)習(xí),必須先理清楚和相關(guān)的幾個(gè)概念。中總是指向一個(gè)對(duì)象,但具體指向誰(shuí)是在運(yùn)行時(shí)根據(jù)函數(shù)執(zhí)行環(huán)境動(dòng)態(tài)綁定的,而并非函數(shù)被聲明時(shí)的環(huán)境。除去不常用的和的情況,具體到實(shí)際應(yīng)用中,指向大致可以分為以下種。 前言 初學(xué)javascript總會(huì)對(duì)this指向感到疑惑,想要深入學(xué)習(xí)javascript,必須先理清楚和this相關(guān)的幾個(gè)概念。javascript中t...
摘要:的幾種用法關(guān)于是什么理論上是執(zhí)行上下文的一個(gè)屬性,的值在進(jìn)入到執(zhí)行上下文的時(shí)候就已經(jīng)確定了,且不會(huì)再改變。默認(rèn)綁定這種情況下,不屬于任何一個(gè)函數(shù)方法內(nèi),即在全局作用域下,這種情況下稱為默認(rèn)綁定。最后的總結(jié)用偽代碼的形式來(lái)表示例外例外本文參考 this的幾種用法 關(guān)于this this是什么? 理論上this是執(zhí)行上下文的一個(gè)屬性,this的值在進(jìn)入到執(zhí)行上下文的時(shí)候就已經(jīng)確定了,且不會(huì)...
摘要:除此之外,還有一種情況也會(huì)修改,在一些庫(kù)中傳入回調(diào)函數(shù),可能會(huì)強(qiáng)制改變的綁定,例如在中本例中的就是被強(qiáng)制改變綁定到了觸發(fā)事件的元素上。它們的第一個(gè)參數(shù)是一個(gè)對(duì)象,它們會(huì)把這個(gè)對(duì)象綁定到,接著在調(diào)用函數(shù)時(shí)指定這個(gè)。 理解JavaScript中的this關(guān)鍵詞 this關(guān)鍵詞是JavaScript語(yǔ)言中一個(gè)很重要,同時(shí)也是一個(gè)非常復(fù)雜的機(jī)制,它同時(shí)也是一個(gè)很特殊的關(guān)鍵詞,它一般會(huì)被自動(dòng)定義...
摘要:作為構(gòu)造函數(shù)何為構(gòu)造函數(shù)所謂構(gòu)造函數(shù)就是用來(lái)對(duì)象的函數(shù),像等都是全局定義的構(gòu)造函數(shù)。正在跑步正在說(shuō)話正在跑步正在說(shuō)話如上,如果函數(shù)作為構(gòu)造函數(shù)用,那么其中的就代表它即將出來(lái)的對(duì)象。 前言 總括:詳解JavaScript中的this的一篇總結(jié),不懂this這個(gè)難點(diǎn),很多時(shí)候會(huì)造成一些困擾,寫出一些bug不知如何收?qǐng)?,所以一起?lái)寫bug吧,不對(duì),一起來(lái)寫代碼吧。 原文地址:JavaScr...
摘要:當(dāng)解釋器尋找引用值時(shí),會(huì)首先檢索其在棧中的地址,取得地址后從堆中獲得實(shí)體如何實(shí)現(xiàn)繼承構(gòu)造繼承原型繼承實(shí)例繼承拷貝繼承原型機(jī)制或和方法去實(shí)現(xiàn)較簡(jiǎn)單,建議使用構(gòu)造函數(shù)與原型混合方式。它是基于的一個(gè)子集。 JavaScript介紹js的基本數(shù)據(jù)類型。Undefined、Null、Boolean、Number、Stri...
閱讀 2582·2023-04-26 02:18
閱讀 1327·2021-10-14 09:43
閱讀 3901·2021-09-26 10:00
閱讀 7380·2021-09-22 15:28
閱讀 2603·2019-08-30 15:54
閱讀 2669·2019-08-30 15:52
閱讀 552·2019-08-29 11:30
閱讀 3529·2019-08-29 11:05