.apply
часто используется, когда намерение состоит в том, чтобы вызвать функцию с переменным числом аргументов со списком значений аргументов, например.
Функция Math.max([value1[,value2, ...]])
возвращает наибольшее из ноль или более чисел.
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
Метод Math.max()
не позволяет передавать массив. Если у вас есть список значений, из которых вам нужно получить наибольшее значение, вы обычно вызываете эту функцию, используя Function.prototype.apply(), например
Math.max.apply(null, [10, 20]); // 20
Math.max.apply(null, [-10, -20]); // -10
Math.max.apply(null, [-10, 20]); // 20
Однако, начиная с ECMAScript 6, вы можете использовать оператор расширения spread. а>:
Оператор расширения позволяет расширить выражение в местах, где ожидается несколько аргументов (для вызовов функций) или несколько элементов (для литералов массива).
Math.max(...[10, 20]); // 20
Math.max(...[-10, -20]); // -10
Math.max(...[-10, 20]); // 20
При вызове функции с помощью оператора вариационного типа вы даже можете добавить дополнительные значения, например.
Math.max(...[10, 20], 50); // 50
Math.max(...[-10, -20], 50); // 50
person
Gajus
schedule
18.12.2014
.apply
и.call
ftw!! - person Rudie   schedule 09.05.2011