как написать тело функции
Всех приветствую, как написать тело функции
function func(){/* ...... */}
и вызвать её двумя способами с одинаковым результатом func(3, 5) // 8 func(3)(5) // 8 |
function func() {
var a = arguments;
return a.length > 1 ? a[0] + a[1] : function(x) { return a[0] + x; };
}
|
function func(a, ...args) {
if(args.length === 0)
return func.bind(this, a);
return args.reduce((summ, val) => summ + val, a)
}
|
const add = function add(...params) {
const value = params.length === 1 ? params.shift() : eval(params.join('+'));
const fn = (...params) => add(value, ...params);
fn.valueOf = Number.bind(null, value);
return fn;
}
console.log(+add(1,3));
console.log(+add(1)(3));
console.log(+add(4,5,1)(3,7)(1,1,1,1,1,1,1,1,1,1,1,1)(0,8,10));
console.log(+add(1)(2)(3)(-6));
|
| Часовой пояс GMT +3, время: 13:50. |