描述你的问题 :下面的代码中为什么this指向的是window而不是obj,下面图片的信息是控制台输出的是window对象
贴上相关代码
obj = {
go: function() {
console.info(this)
}
};
(0 || obj.go)();
贴上报错信息:无报错信息
贴上相关截图
![图片上传中...]
已经尝试过哪些方法仍然没解决(附上相关链接)不知道该怎么解决
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
懒得写了,反正都是我写的,截图吧
原文链接:http://zonxin.github.io/post/2015/11/javascript-this/
点击查看大图

因为逻辑或运算符返回的值会导致当前上下文丢失
对于this,最简单的理解方式就是:某个function里面的this指向调用这个function的对象;
例如func:
1、
obj.funcfunc里面的this指向obj2、
func()在浏览器中实际上是window.func(),所以指向window3、
func被当做构造函数,实际上也是要构造的对象调用的func所以指向构造的对象.........
this:
在构造函数中 , 指向 new 出来的object
在对象的方法中 指向 对象
在全局范围 指向 宿主 对象,浏览器是window,node是global
在 函数中
strict 模式 undefined
非strict ,宿主对象
还有strict模式中,变量obj 没定义会报错的
https://segmentfault.com/q/1010000003912929/a-1020000003913024