Давайте обсудим некоторые предпосылки, почему apply
существуют специально, когда у нас есть метод call
с похожим синтаксисом.
Сначала нам нужно разобраться в некоторых темах:
Функция Variadic:
В компьютерном программировании это функция, которая может принимать любое количество аргументов.
Структура данных JavaScript:
В javascript, если мы имеем дело с данными, чем чаще всего используются структуры данных, это массив, и в большинстве случаев мы получаем данные в виде массива.
Теперь, если мы выполняем какую-либо переменную функцию в javascriptчем наш вызов будет выглядеть следующим образом -
average
- это функция с переменным числом аргументов, и ее вызов будет выглядеть следующим образом:
average(1,2,3);
average(1);
average(3,5,6,7,8);
и, если получаются данные в формате массива (в большинстве случаевВ тех случаях, когда мы получим данные в формате массива для функций Variadic), мы должны вызывать нашу функцию как -
average(array[0],array[1],array[2],array[3],.... and so on)
Что, если мы получили массив длиной 100 элементов, мы напишем его так?
Нет, мы хаve apply
метод, который был разработан именно для этой цели.
average.apply(null,array);