Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2019, 14:29
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

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

и вызвать её двумя способами с одинаковым результатом
func(3, 5) // 8
func(3)(5) // 8
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2019, 15:03
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

function func() {
    var a = arguments;
    return a.length > 1 ? a[0] + a[1] : function(x) { return a[0] + x; };
}
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2019, 15:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

function func(a, ...args) {
  if(args.length === 0)
    return func.bind(this, a);
  return args.reduce((summ, val) => summ + val, a)
}
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2019, 21:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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));

Последний раз редактировалось ruslan_mart, 14.09.2019 в 21:47.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как написать автозапускающийся скрипт на странице пользователя? evgenyivanov Общие вопросы Javascript 1 04.01.2014 15:09
Как объединить 4 одинаковых функции Batyabest Общие вопросы Javascript 2 21.12.2013 22:53
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 09:32