我正在閱讀雄辯的Javascript和我有困難的時候瞭解下面的例子。任何人都可以做一個逐行的解釋?具體來說,我很困惑,爲什麼第一個循環從一開始,以及爲什麼push方法在knownArgs和arguments上都被使用。我知道這與「部分應用」有關,但希望更詳細地解釋逐行發生的事情。部分應用程序 - 雄辯的Javascript
var op = {
"+": function(a,b){return a + b;}
};
function partial(func) {
var knownArgs = arguments;
return function() {
var realArgs = [];
for (var i=1; i<knownArgs.length; i++)
realArgs.push(knownArgs[i]);
for (var i=0; i<arguments.length; i++)
realArgs.push(arguments[i]);
return func.apply(null, realArgs);
};
}
map(partial(op["+"], 1), [0, 2, 4, 6, 8, 10]);
我花了_literally_ 2秒找到這個http://www.drdobbs.com/open-source/currying-and-partial-functions-in-javasc/ 231001821。閱讀所有關於它的內容。 – elclanrs
謝謝,我會閱讀。有希望的我仍然可以得到上述的解釋。 – KMcA
我用更多的解釋更新了我的答案。碰巧,我只是在幾個星期前教了幾個JavaScript類,其中有些例子與此非常相似:-) – Pointy