js this指向问题
class Test {
constructor(fn) {
fn(this._resolve);
}
_resolve(value) {
console.log(this);
}
}
let p = new Test(function (resolve) {
resolve('5秒');
})
为什么输出this输出为 undefined 运行环境不能是undefined吧
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
js里的this一般分为四种情况
1.在全局环境下调用,如foo(),this指向window,严格模式下为undefinded
2.被对象调用,如a.foo(),this指向a
3.通过call,apply,bind等函数强制绑定this
4.var foo=new function Foo();这个时候this指向foo,即Foo()构造出来的对象。
如果能帮助到你,我也很高兴。
ps:我说的仅作为参考,不是金科玉律。
fn(this._resolve);
是把this._resolve当做一个函数传递进去,这个效果和下面代码类似运行时,函数里的this是无主的,运行环境下看环境打印undefined、window或报错
这里你需要传进去的时候使用bind绑定下就可以了
请参阅:JavaScript 的 this 指向问题深度解析