箭頭函數(一)

ES6 箭頭函數使用

基本用法:

ES6中允許使用“箭頭”(=>)定義函數

var f   = v => v;  

上面的代碼相當於

var f = function( v )  {  
    return v;  
} 

根據箭頭函數有參數和無參數來區分

1、無參數的箭頭函數

var f = () => 5;  

等同於

var f = function() { return 5};  

2、有參數的箭頭函數

var sum = ( a, b) => a + b;  

等同於

var sum = function( a, b) {  
    return a +b;  
} 

有的函數體內的語句大於一條的話,它的寫法如下使用一個大括號將其括起來,並使用return語句返回

var sum = (a, b) => { return a+b;} 

由於大括號被解釋爲代碼塊,所以如果箭頭函數直接返回一個對象時,必須在對象外面加一個大括號

var getFunction = id => ({id: id, anme: "Temp"}); 

箭頭函數也可以與變量解構結合使用:

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

等同於:

function full(person) {  
    return person.first +"  "+ person.last;  
}

使用箭頭函數可以讓函數表達的更加簡潔

箭頭函數的一個用處是簡化回調函數

 [1,2,3].map(function(x){  
    return x*x;  
});

使用箭頭函數的寫法

[1,2,3].map(x => x*x);  

另一個例子

 var result = values.sort(function(ab){  
    return a -b;  
 });  

箭頭函數的寫法

var result = values.sort((a, b) => a-b);  

使用rest參數與箭頭函數結合的例子

 const numbers = (...nums) => nums;  
 numbers(1,2,3,4,5,6,7,8,9); //[1,2,3,4,5,6,7,8,9]  
 //...nums 表示的是一個數組  
 const headAndTail = ( head, ...tail) => [head, tail];  
 headAndTail(1,2,3,4,5,6,7,8,9);// [1, [2,3,4,5,6,7,8,9]]  

使用箭頭函數注意幾點:

1、函數體內的this對象就是定義時所在的對象,而不是使用時所在對象;

2、不可以當作構造函數使用,也就是不能用new命令實例化一個對象,否則會拋出一個錯誤;

3、不可以使用arguments對象,該對象在函數體內不存在,如果要用的話,可以用rest參數代替;

4、不可以使用yield命令,箭頭函數不能用作Generator函數;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章