Пример и использование:
Функция привязки может использоваться для присвоения функции конкретному объекту, даже если функция изначально была привязана к другому объекту.
Подумайте о таком объекте:
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
На этот раз все. Было бы здорово, если бы вы могли оставить несколько аплодисментов, если бы сочли этот пост полезным или каким-либо образом помогли вам.
Увидимся в следующий раз.