САЙТЫ  ПОД  КЛЮЧ
ОНЛАЙН-СЕРВИСЫ СПРАВОЧНИКИ SEO-ИНСТРУМЕНТЫ РАЗВЛЕЧЕНИЯ

Справочник Javascript

call

Синтаксис

var result = fun.call(thisArg[, arg1[, arg2[, ...]]])

Аргументы

thisArg
Задает значение this внутри функции. Если thisArg - null или undefined, то это будет глобальный объект. В ином случае, this будет равно Object(thisArg) (то есть thisArg, если thisArg уже объект, или String, Boolean или Number, если thisArg - примитивное значение соответствующего типа). Таким образом, при выполнении функции всегда соблюдается условие typeof this == 'object'.
arg1, arg2 ..
Аргументов, с которыми будет вызвана функция.

Описание, примеры

Метод call может применяться для вызова функции в контексте нужного объекта:

Пример: Вызов sayName в контексте разных объектов
Выделить все
var Animal1 = {name: 'Cat'}
var Animal2 = {name: 'Dog'}
 
function sayName() {
    // this — ссылка на объект, в контексте которого вызвана функция
    alert(this.name);
}
 
sayName.call(Animal1) // выдаст сообщение "Cat"
sayName.call(Animal2) // выдаст сообщение "Dog"

При этом совершенно не важно, какому объекту принадлежит функция. В качестве текущего(this) объекта будет взят первый аргумент.

Пример:
Выделить все
var Animal1 = {
    name: 'Cat',
    sayName: function() {
        alert(this.name);
    }
};
 
var Animal2 = {name: 'Dog'};
 
Animal1.sayName() // выдаст сообщение "Cat"
Animal1.sayName.call(Animal2) // выдаст сообщение "Dog"

Помимо смены контекста вызова, метод call может передавать в функцию аргументы:

Пример:
Выделить все
var obj = {attr: 10};
 
function sum(a, b) {
    alert(this.attr + a + b);
}
 
sum.call(obj, 5, 2) // выдаст сообщение с результатом "17"

Если контекст вызова не указан, то функция будет выполнятся в контексте объекта window:

Пример:
Выделить все
window.a = 5
function sayThis() {     
     alert(this.a);
}
 
sayThis.call() // выдаст 5
Пример:
Выделить все
window.a = 5
function sayThis(b) {     
     alert(this.a + b);
}
 
sayThis.call(null, 3) // выдаст 8

См. также


 

Дежурная шутка

И было у него три сына. Один умный, второй дурак, а третий вообще фидошник.


Наши реквизиты
WMID: 309688839848
WMR: R325885159214
E-mail: 
  BL:Бизнес-уровень [BL]
QR-код сайта
Онлайн-радио
Больше радиостанций