В этом вы получите глубокие знания о том, как Call (), Bind () и применяют работы.
Эти методы доступны для каждой функции в JavaScript. которые все используются для изменения объема того, что это равно внутри функции или способа. Давайте посмотрим следующие примеры.
связывать()
Мы начнем с простого примера объекта, который имеет метод на нем. С BIND () мы можем сообщить JavaScript Engine, где искать это.
const person = { name: "Saurabh", myFunction: function () { return(`Hello ${this.name}`) } } function greetPerson() { console.log(this.myFunction()) } const bindPerson = greetPerson.bind(person) bindPerson(); //Expected Output :- Hello Saurabh
Вещи, чтобы заметить здесь:
-
Bind ()
Создает BindPerson и копию функции GreetPerson. - Слепой, когда вызывается, будет иметь эту переменную, указываю на объект человека
вызов()
Позвоните ()
Вызывает функцию с данным этим значением и аргументами, предусмотренными индивидуально.
Позвоните ()
по сути делает то же самое, что и Bind ()
кроме этого Позвоните ()
на самом деле выполняет функцию
const Saurabh = { name: "Saurabh", myFunction: function () { return(`Hi, I'm ${this.name}`) } } function callingFunction(age, hobby) { console.log(`${this.myFunction()}, my age is ${age} and I like to ${hobby}`); } callingFunction.call(Saurabh, 26, 'reading'); // Expected Output :- Hi, I'm Saurabh, my age is 26 and I like reading
применять()
Позвоните ()
и Применить ()
Делайте то же самое, за исключением того, что Позвоните ()
ожидает, что все параметры будут переданы индивидуально, но Применить ()
ожидает, что все дополнительные параметры будут переданы как массив. Так что это будет выглядеть наш существующий образец код:
const Saurabh = { name: "Saurabh", myFunction: function () { return(`Hi, I'm ${this.name}`) } } function applyingFunction(age, hobby) { console.log(`${this.myFunction()}, my age is ${age} and I like ${hobby}`) } applyingFunction.apply(Saurabh, ``[26, 'Reading']``) // Expected Output :- Hi, I'm Saurabh, my age is 26 and I like Reading
Надеюсь, вы найдете его полезным и узнали что-то новое от нее.
Оригинал: “https://dev.to/saurabh2412/bind-call-apply-in-js-9ne”