我想模擬來自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