关于箭头函数中this的指向问题?
关于箭头函数中this的指向问题
<script>
function foo() {
const test = () => {
console.log(this)
}
test()
}
foo()
let obj = {
a: 1,
}
obj.foo = foo
obj.foo()
</script>
在箭头函数中,this引用的是定义箭头函数的上下文。示例代码按理来说应该打印两次window,但结果是一次window,一次obj。
问了好多个AI,AI给的结果都是打印两次window。
回复
1个回答
test
2024-07-03
箭头函数没有this,再箭头函数里面访问this,你可以当做是访问一个变量,当前作用域没有this,会向上层作用域进行查找。
test里面访问this,这个this是指向foo中的this,单独运行foo,foo的this指向window,使用obj.foo运行foo,foo的this指向obj
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容