javascript - 将函数调用作为参数传递

标签 javascript underscore.js

我有一个以函数作为属性的对象:

var o = {
   "f1":function(){alert('invoke one');},
   "f2":function(){alert('invoke two');},
   "f3":function(){alert('invoke three');}
};

我打算使用 _.each of http://underscorejs.org/调用它们。 所以,我的调用看起来像

_.each(o, function(f){f();});

令人恼火的是_.each 的第二个参数。如果有这样的函数“调用”,我可以调用 _.each(o,invoke);

我知道定义 invoke 相当简单:

function invoke (f){f();}

但我只想知道是否有任何我不知道的内置内容。

最佳答案

没有执行此操作的 native 函数。你可以玩得开心 .call

var invoke = Function.prototype.call.bind(Function.prototype.call)

但是像您那样声明invoke要简单得多。

使用 Underscore.js,您可以使用 invoke method :

_.invoke(o, Function.prototype.call);
_.invoke(o, "call");
_.invoke(o, Function.prototype.apply, []);
_.invoke(o, "apply", []);

关于javascript - 将函数调用作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26979538/

相关文章:

backbone.js - 如何使用 RequireJS 加载 Backbone 深度模型?

javascript - 带 Backbone 的下划线模板中的嵌套循环

node.js - NodeJS 回调序列

javascript - 如何从嵌套对象的数组中删除元素? (lodash)

javascript - 过滤深度嵌套的数据并返回所有父/直接子项JS

javascript - 如何将集合中的所有条目显示为 html (node.js)

javascript - 如何根据文本字段中输入的值禁用剩余的输入字段?

javascript - webpack 为浏览器编译 javascript

javascript - jQuery 能否获取与元素关联的所有 CSS 样式?

javascript - 如何在元素出现时触发 javascript 函数