最初接觸 箭頭函數 => 是在C# 中的Lambda表達式, Lambda表達式作為CLR4 中新引入的語法糖 本質上就是個匿名函數, 整個Lambda表達式也可以看成是一個委托類型
在Javascript 中 如果要實現一個匿名函數, 大部分情況下是這么做的
$("#save-btn").click(function (event) {
.......
});
ES6 中引入了一種新的編寫匿名函數的語法,他的寫法非常簡單:
標識符=>表達式
function,return 關鍵詞, 以及一些大括號小括號統統可以省略,上述例子在ES6 中就可以這么寫:
$("#save-btn").click(event=>{
.......
});
基本語法:
( ) => { … } // 零個參數用 () 表示;
x => { … } // 一個參數可以省略 ();
(x, y) => { … } // 多參數不能省略 ();
但是需要注意的是,多行語句需要用{}括起來,單行表達式不需要{},并且會作為函數返回值。
x => {returnx * x };// 函數返回 x * x
x => x * x;// 同上一行
x =>returnx * x;// SyntaxError 報錯,不能省略 {}
x => { x * x };// 合法,沒有定義返回值,返回 undefined
箭頭函數也可以使用剩余參數和默認參數。
var func1=(x =1, y =2)=>x + y;func1();//得到3
var func2=(x, ...args)=>{console.log(args) };
func2(1,2,3);//輸出 [2,3]