JavaScript Применение функции
Метод повторного использования
С помощью метода apply() вы можете написать метод, который можно использовать для различных объектов.
JavaScript Метод apply()
Метод apply() аналогичен методу call() (см. предыдущую главу).
В этом примере метод fullName для person применяется к person1:
Пример
                const person = {
                  fullName: function() {
                    return this.firstName + " " + this.lastName;
                  }
}
                const person1 = {
                  firstName: "Mary",
                  lastName: "Doe"
}
                // This вернёт "Mary Doe":
                person.fullName.apply(person1);
            
            Попробуйте сами »
        Различия между call() и apply()
Разница в том, что:
Метод call() принимает аргументы отдельно.
Метод apply() принимает аргументы как массив.
Метод apply() очень удобен, если вы хотите использовать массив вместо списка аргументов.
Метод apply() с аргументами
Метод apply() принимает аргументы в виде массива:
Пример
                const person = {
                  fullName: function(city, country) {
                    return this.firstName + " " + this.lastName + "," + city + "," + country;
                  }
}
                const person1 = {
                  firstName:"John",
                  lastName: "Doe"
                }
                person.fullName.apply(person1, ["Oslo", "Norway"]);
            
            Попробуйте сами »
        Сравнение с методом call():
Пример
                const person = {
                  fullName: function(city, country) {
                    return this.firstName + " " + this.lastName + "," + city + "," + country;
                  }
}
                
                const person1 = {
                  firstName:"John",
                  lastName: "Doe"
                }
                
                person.fullName.call(person1, "Oslo", "Norway");
            
            Попробуйте сами »
        Имитация метода максимума для массивов
Вы можете найти наибольшее число (в списке чисел) с помощью метода Math.max():
Поскольку массивы в JavaScript не имеют метода max(), вы можете вместо этого применить метод Math.max().
Первый аргумент (ноль) не имеет значения. В этом примере он не используется.
Эти примеры дадут тот же результат:
Строгий режим JavaScript
В строгом режиме JavaScript, если первый аргумент метода apply() не является объектом, он становится владельцем (объектом) вызванной функции. В "нестрогом" режиме он становится глобальным объектом.

