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, "Пермь", "Россия");
Имитация метода Math.max() в массивах
Вы можете найти наибольшее число (в списке чисел), используя метод Math.max()
:
Поскольку массивы JavaScript не имеют метода max (), вы можете применить используется метод Math.max()
.
Первый аргумент (null) не имеет значения. Он не используется в данном примере.
Эти примеры дадут тот же результат:
JavaScript строгий режим
В строгом режиме JavaScript, если первый аргумент метода apply()
не является объектом,
он становится владельцем (объекта) вызываемой функции.
В "нестрогом" режиме он становится глобальным объектом.