javascript - this指向问题
黄舟
黄舟 2017-04-10 17:06:09
[JavaScript讨论组]
  1. 描述你的问题 :下面的代码中为什么this指向的是window而不是obj,下面图片的信息是控制台输出的是window对象

  2. 贴上相关代码

obj = {
    go: function() {
      console.info(this)
    }
};
(0 || obj.go)();
  1. 贴上报错信息:无报错信息

  2. 贴上相关截图
    ![图片上传中...]

  1. 已经尝试过哪些方法仍然没解决(附上相关链接)不知道该怎么解决

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(5)
迷茫

懒得写了,反正都是我写的,截图吧
原文链接:http://zonxin.github.io/post/2015/11/javascript-this/

点击查看大图

PHPz

因为逻辑或运算符返回的值会导致当前上下文丢失

怪我咯

对于this,最简单的理解方式就是:某个function里面的this指向调用这个function的对象;
例如func:
1、obj.func func里面的this指向obj
2、func() 在浏览器中实际上是window.func(),所以指向window
3、func被当做构造函数,实际上也是要构造的对象调用的func所以指向构造的对象

PHPz

.........

this:

  1. 在构造函数中 , 指向 new 出来的object

  2. 在对象的方法中 指向 对象

  3. 在全局范围 指向 宿主 对象,浏览器是window,node是global

  4. 在 函数中

    1. strict 模式 undefined

    2. 非strict ,宿主对象

obj = {
    go: function() {
      console.info(this)
    }
};
(0 || obj.go)();  // obj.go 是一个函数(理解成取键对应的值) ,所以看 第4点 建议写代码都用strict 模式

还有strict模式中,变量obj 没定义会报错的

迷茫

https://segmentfault.com/q/1010000003912929/a-1020000003913024

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号