我正在阅读雄辩的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