Открыть меню    

Методы javascript call и apply

Методы call и apply позволяют нам определить контекст (this или, другими словами, конкретный объект) внутри вызываемой функции. Единственное отличие между двумя методами в следующем: первый параметр для обоих методов – объект (this в функции); для call в качестве остальных параметров передаются параметры вызываемой функции, а apply ожидает в качестве второго параметра получить массив, который содержит параметры вызываемой функции.

В этом примере у нас есть несколько объектов, все объекты имеют свойство x, но с различными значениями. Когда мы вызываем функцию 'напрямую' this это глобальный объект (window), поэтому будет использоваться значение глобальной переменной x. Когда мы используем call, мы можем точно определить объект посредством первого параметра, затем перечисляем параметры вызываемой функции и ссылаемся внутри функции, через this, на переданный объект. Мы можем сделать тоже самое при помощи метода apply. Но вторым параметром будет массив, состоящий из параметров вызываемой функции.

javascript

var x, o1, o2, r1, r2, r3;
x = 4;
o1 = {x: 2};
o2 = {x: 7};

f = function(m, n) {return m * n * this.x;};

r1 = f(3, 1); // 12
r2 = f.call(o1,3, 1); // 6
r3 = f.apply(o2,[3, 1]); // 21

Комментарии к статье

аватарка пользователя
2017-03-06
похуй

нахуй и похуй бля нахуй, один пример бля ваще не очем - пошли все нахуй и в пизду

Добавить комментарий к сниппету