对象中this指向Window而非父对象问题求助
问题分析与解决方案
你的问题出在箭头函数的this绑定特性上:
- 箭头函数没有自己独立的
this,它的this是继承自定义时所在的外层执行上下文。在全局环境下定义的箭头函数,this会指向全局的Window对象,所以调用Event.listen()时输出的是Window,而非Event对象。
修正方案
把箭头函数替换为普通函数即可,有两种简洁写法:
写法一:普通函数表达式
const Event = { listen: function() { console.log(this); } }; Event.listen(); // 输出 Event{listen: ƒ}
写法二:ES6对象方法简写
const Event = { listen() { console.log(this); } }; Event.listen(); // 输出 Event{listen: ƒ}
内容的提问来源于stack exchange,提问作者Tomas
相关产品推荐
相关产品推荐

