Javascript Node.js中空函数的简写

Javascript Node.js中空函数的简写,javascript,node.js,Javascript,Node.js,在JS中,空对象是{}。JS中是否有空函数的缩写 原因是,由于函数是一级对象,我们更经常使用它们作为参数,但传入一个空函数充其量也很难看 var foo = baz(function(){}); 为了声明一个函数,在某些时候我们必须声明function(){} 我希望更多的Node.js API需要传递(回调)函数,这样API就不会虚假地看起来是同步的。也许朝这个方向迈出的一步就是为空占位符函数创建速记。不,没有。在ES6中,您可能可以使用一个箭头函数:()=>{},它稍微短一点 如果你真的经

在JS中,空对象是
{}
。JS中是否有空
函数的缩写

原因是,由于函数是一级对象,我们更经常使用它们作为参数,但传入一个空函数充其量也很难看

var foo = baz(function(){});
为了声明一个函数,在某些时候我们必须声明
function(){}


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

不,没有。在ES6中,您可能可以使用一个箭头函数:
()=>{}
,它稍微短一点

如果你真的经常需要这个(你不应该?!),你可以自己声明一个:

function noop(){}

然后反复提及。如果你不想把你的作用域弄得乱七八糟,你也可以使用
函数。prototype
函数(原文如此!),它只会不断返回
未定义的
,但实际上它比你的函数表达式要长。

如果你使用lodash,有一个

   const noop = () => {};
如果使用Babel进行不同的编译,请小心-相反,您可以显式返回某些内容:

   const noop = () => ({});

查看此推文,了解大括号为何重要:

创建一个函数并在变量中引用它以供重用如何?我想您可以启用ES6功能,并使用箭头函数语法
a=>0
我使用
布尔值
进行“void”回调以避免抛出,因为它可以传递任何内容。@dandavis:OK,日志记录是一个我并不真正关心的副作用的很好的例子,尽管我通常认为它是在一个处理所有事情的
.log
函数中。@AlexMills:嗯,我还是不相信。如果没有回调就抛出可能是一个好主意,但是对
未定义的
返回值感到好奇的开发人员也不会使用空回调-他想要得到结果。我强烈反对让API“看起来是异步的”,仅仅因为它们接受回调——有返回值。尝试使用Promissions,在那里你可以用
明确异步。然后
等待
(在ES7中)是的,好的,谢谢,我以前看过noop范例,但不知道它的意思-我假设noop代表“no operation”。在这种情况下,这可能是最好的选择。例如,传递空函数(){}比传递null更好。方括号还是花括号?我一直认为这些
[]
是brackets@AlexanderMills只是一个拼写错误:)大括号很重要,但大括号周围的括号使它成为一个非伪函数:它返回这样一个空对象。最好去掉括号,使大括号代表一个空语句块,这就是
function(){
所拥有的。你的函数不同于
function(){}
,因为它返回的是另一个评论者已经指出的
{}
。谢谢你的否决票。我已经在帖子中澄清了