Javascript apply - кастомная реализация

220
12 апреля 2017, 14:50

Есть абстрактная функция, которая на вход принимает параметр и потом что то делает с этим параметром. Хочу реализовать функцию так, чтобы на вход можно было передавать сколько угодно параметров в виде массива. Прочитал, что метод apply позволяет делать такое и так понял что мой кастомный метод должен уметь работать с параметром как с числом так и с массивом - без этого apply делает просто вызов функции

не понимаю как реализовать функцию apply для своего метода

function add(){ 
    var arr = [];
    for(var i = 0; i < arguments.length; i++) {
        arr.push(arguments[i]);
}
  return arr;
}
var x = add(1);
var y = add.apply(null, [1,2,3]);
var z = add(1,2,3);

Получается что add(1,2,3) и add.apply(null, [1,2,3]) возвращают одно и тоже. В чем тогда разница вызова этих функций, не считая контекста вызова , который можно передавать в apply

Есть такая функция Math.min(). Она умеет принимать n-количество параметров, но и с помощью apply может принимать массив параметров. Без apply функция не умеет работать с массивом

Это я неправильно реализовываю функцию или как ?

READ ALSO
Как сделать проверку checked у input?

Как сделать проверку checked у input?

У меня есть несколько блоков с классомbox-check , в каждом из блоков находятся несколько label с input

456
Как в конфигурации скрипта CallMe прописать обязательное поле телефон?

Как в конфигурации скрипта CallMe прописать обязательное поле телефон?

Добрый день, всем! Есть скрипт на сайте CallMe Обратный звонокКак в конфигурации скрипта прописать для поля телефон, что это поле было обязательно...

383
Нужен совет по jquery. Кнопка &ldquo;показать еще&rdquo;

Нужен совет по jquery. Кнопка “показать еще”

Попытался на сделать кнопку "показать еще", чтобы при нажатии следующий блокВроде получилось

545
Yii2 запустить JavaScript-код из Контроллера

Yii2 запустить JavaScript-код из Контроллера

Создаю свою форму регистрации, основанную на Yii2-userНо это не суть

283