有關箭頭函式

李德東發表於2018-09-02

前言

  在react開發中,經常使用bind(this),來將函式繫結上下文,後來使用了箭頭函式,就不需要使用bind(this)了。在非箭頭函式下, this 指向呼叫其所在函式的物件,而且是離誰近就是指向誰(此對於常規物件,原型鏈, getter & setter等都適用);建構函式下,this與被建立的新物件繫結;DOM事件,this指向觸發事件的元素;內聯事件分兩種情況,bind繫結, call & apply 方法等, 容以下一步一步討論。箭頭函式也會穿插其中進行討論。關於this指標的問題可以看下這裡

bind 方法

bind方法在ES5引入, 在Function的原型鏈上,  Function.prototype.bind 。通過bind方法繫結後, 函式將被永遠繫結在其第一個引數物件上, 而無論其在什麼情況下被呼叫。

1 function f(){
2   return this.a;
3 }
4 
5 var g = f.bind({a:"azerty"});
6 console.log(g()); // azerty
7 
8 var o = {a:37, f:f, g:g};
9 console.log(o.f(), o.g()); // 37, azerty
View Code

箭頭函式中的 this

箭頭函式this指標是在定義的時候繫結的,不管在什麼上下文環境中,他的指向是其定義時的指向。而普通的函式this指標是在執行的時候進行繫結的,它的指向為當前上下文環境因此是不確定的。

 





















相關文章