Введите ваш адрес почты


sdcvoy.ru
Понравился сайт? Поделись с друзьями!
Главная » Javascript » Metod-call-apply

Метод call в JavaScript

call и apply в javascriptВ предыдущих уроках вы уже узнали, что означает слово this в JavaScript. Пора улучшить наши знания! В этом уроке вы научитесь явно указывать на this с помощью специальных методов. И первый метод, который мы с вами рассмотрим является метод call().

Он имеет следующий синтаксис:

func.call(context, arg1, arg2, ...)

Давайте посмотрим как же работает на самом деле этот метод:

function square(){
return this.width * this.height;
} 

var area={
 width:+prompt("Введите ширину прямоугольника"," ")||10,
 height:+prompt("Введите высоту прямоугольника"," ")||10
}

alert("Площадь прямоугольника равна " + square.call(area, 'width', 'height' ) );

В этом примере метод call указывает, что this=area и передает ещё аргументы этого объекта. Таким образом мы вычислили площадь прямоугольника. Ну как, здорово?!

Метод apply

Если нам неизвестно, сколько аргументов нужно вызвать, то на помощь придет метод apply. Имеет следующий синтаксис использования:

func.apply(context, [arg1, arg2]);

Нетрудно заметить, что он идентичен методу call, но в отличие от него он принимает массив аргументов, вместо списка:

var array = [];
array.push(568);
array.push(-25);
array.push(4);

// получить максимум из элементов arr
alert( Math.min.apply(null, array) ); // -25 

Я указал null вместо this так, как метод Math не работает с this. Можете ради интереса вставить в предыдущем примере вместо последней строчки кода, вот такую:

alert("Площадь прямоугольника равна " + square.apply(area, [ ]) );

Результат можно увидеть здесь: метод apply



наверх