function asArray(quasiArray, start) {
var result = [];
for (var i = (start || 0); i < quasiArray.length; i++)
result.push(quasiArray[i]);
return result;
}
function partial(func) {
var fixedArgs = asArray(arguments, 1);
return function(){
return func.apply(null, fixedArgs.concat(asArray(arguments)));
};
}
function compose(func1, func2) {
return function() {
return func1(func2.apply(null, arguments));
};
}
var isUndefined = partial(op["==="], undefined);
var isDefined = compose(op["!"], isUndefined);
show(isDefined(Math.PI));
show(isDefined(Math.PIE));
Dlaczego nie można po prostu funkcja komponować powrotu:Czytam Eloquent Javascript i jestem trochę zdezorientowany przez ten przykład częściowej funkcji. Proszę pomóc wyjaśnić
func1(func2);
i dać właściwego wyjścia. Myślałem funkcję częściową, która jest przechowywana w zmiennej isUndefined już wraca func.apply
var op = {
"+": function(a, b){return a + b;},
"==": function(a, b){return a == b;},
"===": function(a, b){return a === b;},
"!": function(a){return !a;}
/* and so on */
};
gdzie jest zadeklarowane op? Czy możesz to dodać? –
Ups, tak, przepraszam – Shaan