Пример и использование:

Функция привязки может использоваться для присвоения функции конкретному объекту, даже если функция изначально была привязана к другому объекту.

Подумайте о таком объекте:

const firstObject = {
secondValue: "Hello World!",
run: function() { console.log(this.value || this.secondValue) }
}

Вызов функции выполнения внутри firstObject с использованием:

firstObject.run()

выдаст следующий результат:

Hello World!

Но, как вы можете видеть в теле функции, при вызове console.log будет выведено «значение», если оно определено, иначе будет напечатано secondValue.

Давайте определим другой объект со свойством под названием «значение»:

const secondObject = {
value: "Hello Moon!"
}

Конечно, в этом случае мы не можем использовать функцию выполнения для вывода «значения», но с помощью функции привязки мы можем сделать именно это. «Bind» вызывается для конкретной функции, которой вы хотите назначить объект, например:

const newRun = firstObject.run.bind(secondObject)

Возвращаемое значение этого вызова функции будет копией исходной функции «run» с «secondObject», определенным как объект «this». Это делает «значение» доступным в объекте «this», который требуется в операторе console.log.

newRun()

теперь напечатает:

Hello Moon!

Чем полезна функция привязки?

Мы могли бы использовать bind, например, для определения значений по умолчанию для вызовов функций, как показано на рисунке:

Https://github.com/timhaag/daily/blob/master/experimental/bind/go3.js

или используйте его как инструмент для быстрого вызова функций, как это используется в:

Https://github.com/timhaag/daily/blob/master/experimental/bind/go2.js

На этот раз все. Было бы здорово, если бы вы могли оставить несколько аплодисментов, если бы сочли этот пост полезным или каким-либо образом помогли вам.

Увидимся в следующий раз.