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()
не является объектом, он становится владельцем (объектом) вызванной функции. В "нестрогом" режиме он становится глобальным объектом.