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[])