Node.js中空函数的简写

Ale*_*lls 33 javascript node.js

在JS中,有一个空对象的简写{}.functionJS中有空的简写吗?

原因是,由于函数是第一类对象,我们更频繁地将它们用作参数,但传入空函数最多是丑陋的.

var foo = baz(function(){});
Run Code Online (Sandbox Code Playgroud)

为了声明一个函数,在某些时候我们必须声明function(){}.

我希望更多Node.js API要求传递(回调)函数,因此API不会欺骗性地看起来是同步的.也许朝这个方向迈出的一步就是为空占位符函数创建速记.

Ber*_*rgi 41

不,那里没有.使用ES6,您可以使用箭头功能:()=>{}它有点短.

如果你经常需要这个(你不应该这样做?!),你可以自己申报一个:

function noop(){}
Run Code Online (Sandbox Code Playgroud)

然后反复参考.如果你不想让你的范围变得混乱,你也可以使用Function.prototype除了不断返回之外什么都不做的功能(原文如此!),但这undefined实际上比你的函数表达式更长.


sid*_*son 7

ES6可能是

   const noop = () => {};
Run Code Online (Sandbox Code Playgroud)

如果使用Babel,请小心,因为它无法正确地进行转换,请改用它。

   const noop = () => ({});
Run Code Online (Sandbox Code Playgroud)

看到有关花括号为何如此重要的推文https://twitter.com/_ericelliott/status/601420050327711744?lang=en

  • 花括号很重要,但是花括号使它成为非虚拟函数:它*返回*一个空对象,像这样。最好删除括号,使大括号代表一个空的语句块,这就是function(){)所具有的。 (3认同)

use*_*495 6

如果您想避免使用大括号,可以尝试以下操作:

const f = () => undefined;
Run Code Online (Sandbox Code Playgroud)