簡體   English   中英

這兩個函數作為箭頭函數的語法是什么?

[英]What would be the syntax on these two functions as an arrow function?

在弄清楚這些箭頭功能的語法時遇到麻煩。 我是新來的...

var numbers = [1, 25, 6, 88, 47, 77, 333, 500];

var even = function (num) {
  return num % 2 === 0;
};
var evens = numbers.filter(even);


var plusThree = numbers.map(function(element) {
  return element + 3;
});
var even = num => num % 2 === 0;

var plusThree = numbers.map(element => element + 3);
function (num) {
  return num % 2 === 0;
};

會成為

(num) => num & 2 === 0

numbers.map(function(element) {
  return element + 3;
});

會成為

numbers.map((element) => element + 3)

最一般的配方是,在這種形式的匿名功能下

function(arg1,arg2,...) { code }

相應的箭頭功能具有這種形式

(arg1, arg2,...) => { code }

在特殊情況下, code只不過是帶有返回表達式的return語句,也就是說,當函數代碼中除了return語句之外沒有任何語句時。 在這種情況下,您會得到更好的東西。

function (arg1,arg2,...) { return expression; }

變成

(arg1,arg2,...) => expression

因此,除了已經發布的內容之外,您還可以始終執行類似的操作(例如,如果您希望箭頭功能具有副作用)

numbers.filter(num => { console.log(num); return num % 2 == 0})

編輯:作為注釋中的指針,僅當您有多個參數時,參數列表周圍的()才是必需的。 所以以下內容也可以

arg1 => { code }
arg1 => expression

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM