函数声明的ES6语法/风格是什么?



我试着看看MDN上的箭头函数,链接到一篇文章ES6深度:箭头函数和ECMAScript语法。我没有找到这种风格的函数体的例子。

参见下面示例代码中的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真的很难读。

要理解这里发生了什么,我们需要理解两件事:

<<ul>
  • 箭头功能/gh>
  • 逗号操作符
  • 作者在这里所做的基本上是避免写以下内容:

    • 显式返回语句
    • 函数体的花括号

    利用(或滥用)箭头函数中的隐式返回和逗号操作符。

    逗号操作符的作用是从左到右计算每个操作数,并返回最后一个操作数的值,在本例中是bowl

    这个函数的更容易读的版本是:

    const takeStockForBowl = bowl => {
    takeForBowl('protein', bowl);
    takeForBowl('grain', bowl);
    takeForBowl('veg', bowl);
    
    bowl.supplied = true;
    
    return bowl;                
    }
    

    最新更新