Ядро JavaScript 1.5. Справочник

Call


Этой возможности нет в спецификации ECMA, соответствующей JavaScript 1.3, но ожидается её появление в следующей версии.

Позволяет вызывать (выполнять) метод одного объекта в контексте другого объекта (вызывающего объекта).

Метод из Реализован в

JavaScript 1.3


Синтаксис

call(thisArg[, arg1[, arg2[, ...]]])

Параметры

thisArg

Параметр вызывающего объекта.

arg1, arg2, ...

Параметр объекта.

Описание



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

С помощью call Вы можете написать метод один раз и наследовать его в другом объекте без необходимости переписывать метод для нового объекта.


Примеры
 

Можно использовать call для построения цепочки конструкторов объекта, аналогично Java. В следующем примере конструктор объекта product определён с двумя параметрами, name

и value. Другой объект, prod_dept, инициализирует свою уникальную переменную (dept) и вызывает конструктор для product в своём конструкторе для инициализации других переменных.

Function product(name, value){

   this.name = name;

   if(value > 1000)

      this.value = 999;

   else

      this.value = value;

}

Function prod_dept(name, value, dept){

   this.dept = dept;

   product.call(this, name, value);

}

prod_dept.prototype = new product();

// поскольку 5 меньше 100, значение устанавливается

cheese = new prod_dept("feta", 5, "food");

// поскольку 5000 больше 1000, значение будет 999

car = new prod_dept("honda", 5000, "auto");


См. также

.


Метод. Вызывает метод из JavaScript. Эквивалентен "this.methodName(args[0], args[1], ...)" в JavaScript.


Объявление

public Object call(String methodName, Object args[])



Содержание раздела