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