0
我正在閱讀async.js庫的源代碼,並在那裏找到了一個名爲'only_once'的函數,然後我嘗試了一些示例來清楚它是如何工作的,但是我我無法弄清楚我的例子有什麼問題,因爲他們根本就不應該這樣做。這裏是我的代碼:async.js庫中的javascript curry示例
function only_once(fn) {
var called = false;
return function() {
if (called) throw new Error('Callback was already called.');
called = true;
fn.apply(this, arguments);
};
}
// my example code
var add = function (a, b) { return a + b; };
var add_once = only_once(add);
var a = add_once(1, 3);
console.log(a); // this prints undefined not 4, what the hell ?????
哇,這真是徹底的,太感謝你了,但仍然有一兩件事,我不太明白,你怎麼可以使用在回調中傳遞的參數?因爲如果你在console.log(參數)的回調中沒有存在'return'語句,那麼它是未定義的。 – 291