传递函数调用的参数(Passing function invocation as a paramet

2019-10-21 06:32发布

我有用作属性的对象:

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

我打算用_.each的http://underscorejs.org/调用它们。 因此,我调用看起来像

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

什么刺激是_.each第二个参数。 如果有这样的功能“调用”,我可以打电话_.each(o,invoke);

我知道,定义调用是相当容易:

function invoke (f){f();}

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

Answer 1:

还有,做这个没有原生的功能。 你可以有一点乐趣.call

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

但声明invoke像你这样要简单得多。

随着Underscore.js,但是,您可以使用invoke方法 :

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


文章来源: Passing function invocation as a parameter