Получи случайную криптовалюту за регистрацию!

Четыре паттерна вызова функций в JavaScript Method Invocation | Senior Frontend - javascript, html, css

Четыре паттерна вызова функций в JavaScript

Method Invocation
«Вызов метода» представляет из себя вызов функции, принадлежащей объекту. Пример:
var obj = {
value: 0,
increment: function() {
this.value+=1;
}
};
obj.increment();
Значение this будет ссылаться на объект, которому принадлежит функция.

Function Invocation
Вызов функции выполняется с помощью оператора ():
add(2,3);
this привязывается к global object.

Constructor Invocation
Паттерн запускается путем размещения оператора new прямо перед вызовом, например:
var Cheese = function(type) {
cheeseType = type;
return cheeseType;
}
cheddar = new Cheese("cheddar");
this в данном случае будет относиться к свежесозданному объекту.

Apply And Call Invocation
Данный паттерн использует два параметра: первый — это объект, к которому привязывается this, второй — это массив, связанный с параметрами:

var obj = {
data:'Hello World'
}
var displayData = function() {
alert(this.data);
}
displayData(); //undefined
displayData.apply(obj); //Hello World
Этот пример использует apply для привязки this к obj. В результате мы в состоянии получить значение this.data. Настоящая ценность apply заключается именно в привязывании this.

В JavaScript также существует оператор call, похожий на apply всем, за исключением того что получает не параметры, а список аргументов.