Читаю про ES-2015 на http://learn.javascript.ru, в частности использование spread. Приведен такой пример:
'use strict';
let numbers = [2, 3, 15];
let max = Math.max(...numbers);
alert( max ); // 15
а ниже указано, что
Math.max(...numbers);
Math.max.apply(Math, numbers);
делают одно и то же.
Сам пример мне понятен, но что за конструкция приведена здесь:
Math.max.apply(Math, numbers);
???
Что за метод apply
?
apply
позволяет вызывать функцию/метод в контексте другого объекта
const obj = {
name: 'obj',
method: function () {
alert(this.name);
}
}
obj.method(); // выведет obj
obj.method.apply({name: 'obj2'}); // выведет obj2
Подробнее
P.S.
apply
не совсем аналог spread-оператору
. Просто Math.max
принимает список параметров, в который разворачивается массив spread-оператором
.
let numbers = [2, 3, 15];
let max = Math.max(...numbers);
// то же самое что и
Math.max(2, 3, 15);
apply
же вторым параметром принимает массив, которые будет передан как аргументы в функцию
const fn = (a, b) => a + b
fn.apply(null, [1, 2]); // null потому что нам не нужен тут контекст
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вам необходимо создать приложение для автоматизации работы погрузочных кранов, позволяющих перемещать плиты между грузовыми автомобилями...
На сайте есть гугл картаНа неё JS-ом выводятся пользовательские метки (google
У меня есть div, содержимое которого может меняться различными способами: например, весь его контент может быть изменён через innerHTML, или могут...