JavaScript Функція apply()
Метод повторного використання
За допомогою методу apply()
ви можете написати метод, який можна використовувати для різних об’єктів.
Метод JavaScript apply()
Метод apply()
подібний до методу call()
(див. попередній розділ).
У цьому прикладі метод fullName для person застосовано до person1:
Приклад
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// Поверне "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");
Спробуйте самі »
Імітація методу Max для масивів
Ви можете знайти найбільше число (у списку чисел) за допомогою методу Math.max()
:
Оскільки масиви JavaScript не мають методу max(), замість нього можна застосувати метод Math.max()
.
Перший аргумент (null) не має значення. У цьому прикладі він не використовується.
Ці приклади дадуть той самий результат:
Строгий режим JavaScript
У строгому режимі (Strict Mode) JavaScript, якщо перший аргумент методу apply()
не є об’єктом, він стає власником (об’єктом) викликаної функції. У "нестрогому" режимі він стає глобальним об’єктом.