JS中this的指向和ES6的箭頭函數


JS中的this

JS中this的指向一般可以直接歸成一條規律

====》 函數中的this

function f1(){ return this; } f1() === window; // true

網上分析較多,因而將其匯總:函數中的this 一般都指向調用這個函數的對象

直接寫在document下的都會指向window對象。內聯事件函數中的this也是同理

而寫在對象中的函數也會遵守(指向調用這個函數的對象)這條規律。

而其中有幾個例外:

1. DOM事件監聽綁定的函數中的this指向的是觸發函數的DOM元素

2.Function.prototype.bind 通過bind方法綁定后, 函數將被永遠綁定在其第一個對象上

3.setTimeout & setInterval 中函數里的this指向window

4.構造函數中的this永遠指向創建的實例對象(這里的函數 指原型方法,即綁定進proptype的方法 而非static靜態方法,靜態方法依舊是誰調用指向誰,用變量接收方法並執行,則指向window)

image

ES6的箭頭函數

image
箭頭函數自身並不綁定this,內部的this會自動指向上下文中與之最鄰近的有定義this的對象上
解決了函數嵌套中this的指向不明問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM