提问人:sangmin park 提问时间:12/21/2020 更新时间:12/21/2020 访问量:29
了解回调函数中的“this” [duplicate]
Understanding "this" within callback functions [duplicate]
问:
我试图通过各种代码示例来理解“this”指的是什么。到目前为止,我知道“这个”取决于谁称呼它或如何称呼它。例如:
let user = {
firstName: "Ilya",
sayHi() {
let arrow = () => console.log(this.firstName);
arrow();
},
sayHi2() {
let func = function() {
console.log(this.firstName)
}
return func;
}
};
user.sayHi(); // Ilya
let hi = user.sayHi;
hi(); // undefined
user.func = user.sayHi2()
user.func() // Ilya
上面的例子对我来说很有意义,我还了解到箭头函数没有“this”,因此它通过其外部词法环境搜索“this”。
现在,我正在尝试使用回调来“这个”。
let user = {
firstName: "Bob",
sayHi(func) {
func()
}
}
function hello() {
console.log("hello " + this.firstName);
}
user.sayHi(hello);
user.sayHi(()=>{ console.log("hello " + this.firstName)});
为什么返回 undefined?“this”不是指对象,因为是由 调用的吗?或者当函数作为回调执行时,“this”值是否不同?this.firstName
user
sayHi()
user
答: 暂无答案
评论
this