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