函数声明的这个ES6 syntax/style叫什么?
What is this ES6 syntax/style of function declaration called?
我试着查看 MDN on arrow functions, that links to an article ES6 In Depth: Arrow functions and the ECMAScript grammar。我没有找到这种函数体样式的例子。
参见下面示例代码中的 takeStockForBowl
。
请问,这种风格的函数定义应该叫什么?
也许这是对更基本的 JavaScript 语法的再利用,但我只是看不到它。抱歉,如果很明显。
const takeStockForBowl = bowl => ( // open paren
takeForBowl('protein', bowl), // side effect 1
takeForBowl('grain', bowl), // side effect 2
takeForBowl('veg', bowl), // ...
bowl.supplied = true, // side effect n
bowl // result
) // close paren
首先,takeStockForBowl
真的很难读
要了解这里发生的事情,我们需要了解两件事:
- 箭头函数
- Comma operator
作者这里基本上是避免写成下面的:
- 显式 return 语句
- 函数体的花括号
利用(或滥用)implicit return in arrow function 和逗号运算符。
逗号运算符的作用是从左到右评估其每个操作数,returns 最后一个操作数的值,在本例中为 bowl
.
此函数的更具可读性的版本是:
const takeStockForBowl = bowl => {
takeForBowl('protein', bowl);
takeForBowl('grain', bowl);
takeForBowl('veg', bowl);
bowl.supplied = true;
return bowl;
}
我试着查看 MDN on arrow functions, that links to an article ES6 In Depth: Arrow functions and the ECMAScript grammar。我没有找到这种函数体样式的例子。
参见下面示例代码中的 takeStockForBowl
。
请问,这种风格的函数定义应该叫什么?
也许这是对更基本的 JavaScript 语法的再利用,但我只是看不到它。抱歉,如果很明显。
const takeStockForBowl = bowl => ( // open paren
takeForBowl('protein', bowl), // side effect 1
takeForBowl('grain', bowl), // side effect 2
takeForBowl('veg', bowl), // ...
bowl.supplied = true, // side effect n
bowl // result
) // close paren
首先,takeStockForBowl
真的很难读
要了解这里发生的事情,我们需要了解两件事:
- 箭头函数
- Comma operator
作者这里基本上是避免写成下面的:
- 显式 return 语句
- 函数体的花括号
利用(或滥用)implicit return in arrow function 和逗号运算符。
逗号运算符的作用是从左到右评估其每个操作数,returns 最后一个操作数的值,在本例中为 bowl
.
此函数的更具可读性的版本是:
const takeStockForBowl = bowl => {
takeForBowl('protein', bowl);
takeForBowl('grain', bowl);
takeForBowl('veg', bowl);
bowl.supplied = true;
return bowl;
}