Рубрики
Без рубрики

Как: call (), применить () и связываться () в JavaScript

Короткое введение Apply (), Call () и Bind () методов в JavaScript для начинающих.

Автор оригинала: Niladri Sekhar Dutta.

В этом посте мы будем обсуждать разницу между Звоните () , Применить () и Bind () Методы функций JavaScript с простыми примерами. В качестве функций также являются объектами в JavaScript, эти 3 метода используются для контроля вызова функции. Звоните () и Применить () были введены в Ecmascript 3, а Bind () был добавлен как часть ECMAScript 5.

Использует

Вы можете использовать Звоните () / Применить () Чтобы вызвать функцию немедленно. Bind () Возвращает связанную функцию, которая, когда выполняется позже, будет иметь правильный контекст ( «Это« ) для вызова оригинальной функции. Итак, Bind () Может использоваться, когда функция должна называться позже в определенных событиях, когда это полезно.

Чтобы понять «Это» В JavaScript прочитайте Понимание «Это» в JavaScript Отказ

call () или функция .prototype.Call ()

Проверьте образец кода ниже для вызов()

//Demo with javascript .call()

var obj = {name:"Niladri"};

var greeting = function(a,b,c){
    return "welcome "+this.name+" to "+a+" "+b+" in "+c;
};

console.log(greeting.call(obj,"Newtown","KOLKATA","WB"));
// returns output as welcome Niladri to Newtown KOLKATA in WB

Первый параметр в Звоните () Метод устанавливает «Это» Значение, которое является объектом, на котором вызывается функция. В этом случае это “Обжим” объект выше.

Остальные параметры являются аргументами к фактической функции.

Применить () или функцию. Прототип .apply ()

Проверьте образец кода ниже для применять()

//Demo with javascript .apply()

var obj = {name:"Niladri"};

var greeting = function(a,b,c){
    return "welcome "+this.name+" to "+a+" "+b+" in "+c;
};

// array of arguments to the actual function
var args = ["Newtown","KOLKATA","WB"];  
console.log("Output using .apply() below ")
console.log(greeting.apply(obj,args));

/* The output will be 
  Output using .apply() below
 welcome Niladri to Newtown KOLKATA in WB */

Точно так же Звоните () Метод первого параметра в Применить () Метод устанавливает «Это» Значение, которое является объектом, на котором вызывается функция. В этом случае это “Обжим” объект выше. Единственная разница Применить () с Звоните () Метод заключается в том, что второй параметр Применить () Метод принимает аргументы фактической функции в качестве массива.

bind () или функция .prototype.bind ()

Проверьте образец кода ниже для связывать()

//Use .bind() javascript

var obj = {name:"Niladri"};

var greeting = function(a,b,c){
    return "welcome "+this.name+" to "+a+" "+b+" in "+c;
};

//creates a bound function that has same body and parameters 
var bound = greeting.bind(obj); 


console.dir(bound); ///returns a function

console.log("Output using .bind() below ");

console.log(bound("Newtown","KOLKATA","WB")); //call the bound function

/* the output will be 
Output using .bind() below
welcome Niladri to Newtown KOLKATA in WB */

В приведенном выше примере кода для Bind () Мы возвращаем связанную функцию с контекстом, который будет вызван позже. Мы можем увидеть связанную функцию в консоли, как показано ниже.

County.jpg.

Первый параметр к методу BIND () устанавливает значение «Это» В целевой функции, когда вызывается связанная функция. Обратите внимание, что значение для первого параметра игнорируется, если связанная функция построена с использованием «Новый» оператор. Остальные параметры, следующие на первом параметре в методе BING (), передаются как аргументы, которые предложены к аргументам, предоставляемым связанным функциям при вызове целевой функции.

Это все сейчас. Спасибо за чтение, и я надеюсь, что этот пост будет полезен для начинающих, которые сталкиваются с вопросами относительно Применить () , Звоните () и Bind () Методы JavaScript.