Автор оригинала: 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 ()
Мы возвращаем связанную функцию с контекстом, который будет вызван позже. Мы можем увидеть связанную функцию в консоли, как показано ниже.
Первый параметр к методу BIND () устанавливает значение «Это» В целевой функции, когда вызывается связанная функция. Обратите внимание, что значение для первого параметра игнорируется, если связанная функция построена с использованием «Новый» оператор. Остальные параметры, следующие на первом параметре в методе BING (), передаются как аргументы, которые предложены к аргументам, предоставляемым связанным функциям при вызове целевой функции.
Это все сейчас. Спасибо за чтение, и я надеюсь, что этот пост будет полезен для начинающих, которые сталкиваются с вопросами относительно Применить ()
, Звоните ()
и Bind ()
Методы JavaScript.