May 31, 2023

Bind

Используйте метод bind(), чтобы убедиться, что это то, что вы хотите, чтобы было в области видимости функции.

Используем пример с ошибкой из предыдущего урока:

function doTwice (func) {
  func()
  func()
}

const noraTheCat = {
  name: 'Nora',
  color: 'orange',
  whatsMyName: function () {
    console.log(this.name)
  }
}

Это приведет к ошибке. doTwice вызывает функцию как. самостоятельная функция, которая устанавливает 'this' в глобальную область видимости. whatsMyName не существует в window

doTwice(noraTheCat.whatsMyName.bind(noraTheCat))
$ node jsbyexample.js
Nora
Nora

Подробнее

Далее: наследование и прототипы