我想模拟来自JavaScript库Underscore.js的times
函数。使用变量作为对象和函数
这个函数接受两种语法:
_.times(3, function(n) {
console.log("hello " + n);
});
和
_(3).times(function(n) {
console.log("hello " + n);
});
到目前为止,我成功通过创建一个_
对象这样嘲笑的第一个:
var _ = {
times: function(reps, iteratee) {
// a loop
}
};
而且第二种语法是创建一个返回对象的函数_
:
function _(n) {
return {
times: function(iteratee) {
// a loop
}
};
}
但我不能一起使用这两种方法。我需要找到一种可以同时支持这两种语法的方法。 你知道我怎样才能把_
这个角色作为一个对象来使用吗?
除了这个,还有更多的工作使得_(3).times(fn)'工作。你必须从函数中返回一个对象,这个对象在实例数据中都捕获了'3',而对象上有'.times()'方法。 – jfriend00
@ jfriend00你是对的,但是如果OP只是试图嘲笑它,它实际上并不需要做任何工作,对吧? –
OP想要一些有效的东西。我认为他们在这里的术语“模拟”意味着他们想要'.times()'的工作方式。 – jfriend00