ES6----箭頭函數(shù)

1、基本用法

在ES6中允許使用箭頭()=>來(lái)定義函數(shù)。

var f = v => v;
//等同于
var f = function(v) {
  return v;
};

如果函數(shù)不需要參數(shù)或者需要多個(gè)參數(shù)就使用圓括號(hào)來(lái)代替。

var f = () => 5;
// 等同于
var f = function () { return 5 };

var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};

箭頭函數(shù)可以與解構(gòu)賦值同時(shí)使用。

const full = ({ first, last }) => first + ' ' + last;

// 等同于
function full(person) {
  return person.first + ' ' + person.last;
}

箭頭函數(shù)可以簡(jiǎn)化函數(shù)代碼,尤其是回調(diào)函數(shù)的簡(jiǎn)化。

// 正常函數(shù)寫法
[1,2,3].map(function (x) {
  return x * x;
});

// 箭頭函數(shù)寫法
[1,2,3].map(x => x * x);

2、使用時(shí)注意事項(xiàng)

1)函數(shù)中的this是定義函數(shù)時(shí)的this,而不是使用函數(shù)時(shí)的this,也就是說(shuō)箭頭函數(shù)中的this是固定的。

function foo() {
  setTimeout(() => {
    console.log('id:', this.id);
  }, 100);
}

var id = 21;

foo.call({ id: 42 });
// id: 42

上面的例子中,使用了箭頭函數(shù),this指向foo而不是window。
根據(jù)這一特性我們可以用來(lái)封裝回調(diào)函數(shù)。
2)不可以當(dāng)作構(gòu)造函數(shù),也就是說(shuō),不可以使用new命令,否則會(huì)報(bào)錯(cuò)。由于箭頭函數(shù)沒(méi)有自己的this,所以當(dāng)然也就不能用call()、apply()、bind()這些方法去改變this的指向。
箭頭函數(shù)可以綁定this對(duì)象,大大減少了顯式綁定this對(duì)象的寫法(call、apply、bind)。但是,箭頭函數(shù)并不適用于所有場(chǎng)合,所以ES7提出了“函數(shù)綁定”(function bind)運(yùn)算符,用來(lái)取代call、apply、bind調(diào)用。雖然該語(yǔ)法還是ES7的一個(gè)提案,但是Babel轉(zhuǎn)碼器已經(jīng)支持。函數(shù)綁定運(yùn)算符是并排的兩個(gè)冒號(hào)(::),雙冒號(hào)左邊是一個(gè)對(duì)象,右邊是一個(gè)函數(shù)。該運(yùn)算符會(huì)自動(dòng)將左邊的對(duì)象,作為上下文環(huán)境(即this對(duì)象),綁定到右邊的函數(shù)上面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 參考: http://es6.ruanyifeng.com/?search=%E7%AE%AD%E5%A4%B4&...
    TingsLee閱讀 494評(píng)論 0 1
  • 箭頭符號(hào)在JavaScript誕生時(shí)就已經(jīng)存在,當(dāng)初第一個(gè)JavaScript教程曾建議在HTML注釋內(nèi)包裹行內(nèi)腳...
    程序員之路閱讀 761評(píng)論 0 3
  • 函數(shù)參數(shù)的默認(rèn)值 基本用法 在ES6之前,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采用變通的方法。 上面代碼檢查函數(shù)l...
    呼呼哥閱讀 3,476評(píng)論 0 1
  • 前言 最近學(xué)習(xí)了慕課網(wǎng)上的vue仿餓了嗎的視頻,體會(huì)到了es6的箭頭函數(shù)的妙用,因此特別總結(jié)了一下箭頭函數(shù)的用法。...
    破浪_閱讀 412評(píng)論 0 3
  • 臨江三里有神廟, 青龍山下東南。 晨鐘暮鼓伴香煙, 祈福風(fēng)雨順, 安享豐收年。 香火傳承千百載, 幾經(jīng)戰(zhàn)火硝煙。 ...
    果然全身閱讀 127評(píng)論 3 2