Variative function
apply usage
by Ivan Gerasimenko
JavaScript
function log(msg) { console.log(msg); }
// вариативная ф-ия (переменной арности)
// f(x1, ... , xn), где n - любое целое положительное больше 1
function average() {
var args = [].slice.call(arguments);
var sum = 0;
for(var i = 0; i<arguments.length; i++) {
sum += args[i];
}
return sum/args.length;
}
// ф-ия фиксированной арности
function averageOfArray(arr) {
return average.apply(null, arr);
}
// и снова переменной
function averageVar() {
return averageOfArray(arguments);
}
log('вариативная ф-ия');
log(average(1,2,3,4));
log('фиксированной арности');
log(averageOfArray([1,2,3,4]));
log('снова вариативная ф-ия');
log(averageVar(1,2,3,4));