当将对象方法作为回调进行传递,例如传递给 setTimeout,这儿会存在一个常见的问题:“丢失 this”。
在本章中,我们会学习如何去解决这个问题。
setTimeout,
丢失 “this”
我们已经看到了丢失 this 的例子。一旦方法被传递到与对象分开的某个地方 —— this 就丢失。
下面是使用 setTimeout 时 this 是如何丢失的:
let user = {
firstName: "John",
sayHi() {
alert(`Hello, ${
this.firstName}!