Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как написать тело функции (https://javascript.ru/forum/misc/78437-kak-napisat-telo-funkcii.html)

komplekt_17 14.09.2019 14:29

как написать тело функции
 
Всех приветствую, как написать тело функции
function func(){/* ......  */}

и вызвать её двумя способами с одинаковым результатом
func(3, 5) // 8
func(3)(5) // 8

Alexandroppolus 14.09.2019 15:03

function func() {
    var a = arguments;
    return a.length > 1 ? a[0] + a[1] : function(x) { return a[0] + x; };
}

Aetae 14.09.2019 15:08

function func(a, ...args) {
  if(args.length === 0)
    return func.bind(this, a);
  return args.reduce((summ, val) => summ + val, a)
}

ruslan_mart 14.09.2019 21:44

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, время: 02:11.