繞不開的this

2022-04-25 06:15:46 字數 909 閱讀 8559

猶豫兩秒要不要整理this,從紅皮書上看了半天,沒搞懂哎(弱爆了)

什麼是this?

this是在執行上下文建立時期建立的乙個執行過程中不可改變的變數。

執行上下文是指js引擎會將**執行前需要的變數this提前宣告好儲存在變數物件中的過程,作用域鏈也儲存在這樣類似陣列的形式儲存在函式中的scope屬性中。

this之所以有多變性是因為this只在建立階段呼叫,執行上下文建立階段複製。

this在不同情況下的指向不同

1、嚴格模式下

this的指向是undefine

2、非嚴格模式下,this指向的是window,當obj在全域性宣告的時候,內部的this指向全域性物件,當obj在乙個函式中宣告的時候(也就是作為純函式),嚴格模式下this會指向undefine,非嚴格模式會自動轉為全域性物件。

3、作為物件的用法this等於那個物件,指向呼叫物件

var a = 1;

var obj =

} console.log(obj.b())//2

分析:定義了乙個全域性變數,然後定義了乙個物件,會返回乙個字串,呼叫的是obj的b方法,所以返回的是2

var a = 1;

var obj =

}var t =obj.b;

console.log(t());//1

分析:呼叫obj.b()時會立即返回乙個字串,只能找到 var = 1

5、建構函式

6、箭頭函式

7、定時器中的this指向的是window

總結

關於this萬變不離其宗,this永遠指向正在執行的函式或者物件

講講 2023年 繞不開的雙攝

在 iphone7 plus 發布前雙攝可能還只是安卓陣營的大膽嘗試,但自從蘋果確定雙攝後,雙攝定會變成手機的設計趨勢。在 2017 年基本上各廠商的旗艦都配備了雙攝,那這裡我就來介紹一下雙攝。雙攝,顧名思義即雙攝像頭。目前雙攝有兩種模式,一種是廣角 長焦的雙攝方案代,表手機有 iphone7 pl...

繞不開的Python模組管理工具 pip

這篇咱們來介紹下python中必不可少的模組管理工具 pip。首先這個工具是幹嘛用的呢?前面我們提到python中有很多的庫函式,這個是怎麼體現的呢?其實就是我們的前輩們已經寫好的乙個乙個的函式庫,他們把這些庫函式封裝起來,變成python中的乙個模組。而我們就不用再重複寫這些函式功能了,我們只需要...

繞中心旋轉

本文告訴讀者在canvas中怎麼繞中心旋轉,通過此方法模擬出乙個2d平面內的水珠,涉及的知識點和技巧包括 jscex基礎知識,貝塞爾曲線的繪製,合理利用canvasrenderingcontext2d的translate和rotate等api。在模擬水滴之前,我們先思考一下怎麼在canvas當中繪製...