Я новичок в JavaScript, пытаясь понять этот урок о каррировании из Cookie Cookie от Oreilly.
Может ли кто-то быть достаточно любезен, чтобы подробно объяснять эту программу шаг за шагом на простом языке. Обязательно объясните аргумент "null", переданный во второй последней строке программы. Заранее спасибо, если вы можете помочь.
function curry(fn, scope) {
scope = scope || window;
var args = [];
for (var i = 2, len = arguments.length; i < len; ++i) {
args.push(arguments[i]);
}
return function() {
var args2 = [];
for (var i = 0; i < arguments.length; i++) {
args2.push(arguments[i]);
}
var argstotal = args.concat(args2);
return fn.apply(scope, argstotal);
};
}
function diffPoint(x1, y1, x2, y2) {
return [Math.abs(x2 - x1), Math.abs(y2 - y1)];
}
var diffOrigin = curry(diffPoint, null, 3.0, 4.0);
var newPt = diffOrigin(6.42, 8.0); //produces array with 3