筆記部分摘自:http://www.csdn.net/article/2015-07-08/2825159-es6-in-depth-arrow-functions
一砌左、基本用法
ES6中可以使用“箭頭”(=>)定義函數(shù)积锅。
1、參數(shù)單一時:
//ES5
var selected=allJobs.filter(function (job) {
return job.isSelected();
})
//ES6中可改寫為以下方式
var selected=allJobs.filter(job => job.isSelected());
2吩屹、函數(shù)有多個參數(shù)時璧诵,只要把相關參數(shù)用括號包起來:
//ES5
var total = values.reduce(function (a,b) {
return a+b;
},0);
//ES6
var total = values.reduce( (a,b)=>a+b, 0);
3、箭頭函數(shù)不僅是單一表達式袱瓮,而是區(qū)塊語句時:
//ES5
$("#a-btn").click(function (event){
playTrumpet();
doSomething();
});
//ES6
$("#a-btn").click(event=>{
playTrumpet();
doSomething();
});
二宛瞄、關于this
1浮禾、箭頭函數(shù)內(nèi)部有綁定this的機制。
箭頭函數(shù)沒有自己的this值份汗。函數(shù)體內(nèi)的this對象盈电,就是外層代碼塊的this。因為它沒有this杯活,故而不能用作構造函數(shù)匆帚。
同時,由于沒有自己的this轩猩,也不能使用call()卷扮、apply()荡澎、bind()這些方法去改變this指向均践。
2、不可以使用arguments對象摩幔,該對象在函數(shù)體內(nèi)不存在彤委。如果要用,可以用Rest參數(shù)代替或衡。
因為rest運算符顯式表明你想要獲取參數(shù)焦影,而且arguments是一個類似數(shù)組的對象车遂,而rest運算符可以提供一個真正的數(shù)組。