我试图对 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
}
};
}
但是我不能同时使用这两种方法。我需要找到一种方法,可以允许两种语法。
你有任何想法吗?我该如何将_
字符既用作对象又用作函数?