这种情况下的this为什么指向window呢?
window.identity = "The Window"
let object = {
identity: "My Object",
testThis: this.identity,
getIdentityFunc7() {
function innerFunction() {
console.log(this.identity)
}
innerFunction()
},
}
object.getIdentityFunc7() // The Window
标准函数中,this引用把函数当成方法调用的上下文对象,所以我认为这个innerFunction函数中的this应该引用的是getIdentityFunc7的这个对象。
但是事实确实this引用的window,这是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
呃, 这里就是无上下文啊.
在
getIdentityFunc7
这里是有上下文this, 在内部定义的function
是找不到上下文的,根据
this
的绑定优先级最终会找到全局对象window
.可以去找找关于this的绑定规则
new绑定 > 显示绑定 > 隐式绑定 > 默认绑定
简单点说 其实就是谁调用它this指向谁 而不是你这个函数在谁里面就该指向谁
我觉的楼上说的挺对,
谁调用指向谁