猶豫兩秒要不要整理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當中繪製...