2016-11-18 32 views
1

我想知道是什麼功能()和()=>之間的差值這之間的差異:是什麼以JavaScript

選項A:

var elements = ['a', 'b', 'c', 'd']; 
elements.forEach(function(e){ 
    console.log('element is: ' + JSON.stringify(e, null, 2)); 
}); 

選項B:

var elements = ['a', 'b', 'c', 'd']; 
elements.forEach((e) => { 
    console.log('element is: ' + JSON.stringify(e, null, 2)); 
}); 

選項B比A更好/更快?或者是一樣的?

謝謝

回答

2

選項B對javascript ES6(也稱爲ES2015)使用更高版本的語法。它只是逐漸被瀏覽器和節點所支持;通常如果你想使用它當前你會transpile它使用像巴貝爾(這將有效地將選項B的代碼到選項A的)。

https://babeljs.io/docs/learn-es2015/

https://strongloop.com/strongblog/an-introduction-to-javascript-es6-arrow-functions/

+0

對不起,打字!! –

+1

這是誤導。在這兩種情況下'this'的行爲有着重要的不同。 – JohnnyHK

+1

對不起,我認識到箭頭函數對待'this'的方式不同,但原始的海報只是詢問一般的語法,引用的函數不使用'this'。 –