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