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