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
Далее: наследование и прототипы