javascript中this的指向问题
高洛峰
高洛峰 2017-04-11 13:01:12
[JavaScript讨论组]
   name = "77";
    var obj = {
      name: "88",
      getName: function () {
        return this.name;
      } 
    };
    (obj.getName = obj.getName)();  //返回 77
    
    

高级程序设计183页解释说:因为这个赋值表达式的值是函数本身,所以this的值不能得到维持,结果就返回了全局变量。 不是很能理解,希望大神再给讲解一下

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
高洛峰

这么理解,首先obj.getName = obj.getName,这个返回的是obj.getName对应的值,也就是内存里的那个函数,于是就可以将obj.getName = obj.getName视作全局函数。需要理解的是变量赋值的过程啊!
关于作用域
关于赋值

PHP中文网

你描述的和这个是等价的:

想得到你想要的结果,你应该这么用:

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

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