为了账号安全,请及时绑定邮箱和手机立即绑定

关于javascript,私有作用域中this的指向问题,谢谢各位!!

关于javascript,私有作用域中this的指向问题,谢谢各位!!

紫衣仙女 2019-03-01 22:23:11
<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <script src="../lib/jquery.min.js"></script>        <script src="https://cdn.bootcss.com/angular.js/1.3.6/angular.js"></script>        <script src="https://cdn.bootcss.com/angular.js/1.3.6/angular-route.js"></script>        <title>图灵机器人</title>        <script>            var name = "Top";            var obj = {                name:"My Object",                sayName:function(){                    alert(this.name);                }            }            obj.sayName();//My Object            (obj.sayName)();//My Object            (obj.sayName = obj.sayName)();//Top        </script>    </head>    <body>    </body></html>这段代码的第三种写法为什么this指向的是全局变量?这第三种写法等价于怎样的写法,我改怎样去理解第三行的这段写法?谢谢各位大神!!
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

前两种写法,都是通过obj调用obj的方法sayName方法
第三种写法,自认为等同于:
var tmp = obj.sayName;
tmp();
这个时候tmp已经是全局变量了,相当于调的是window.tmp(),那this肯定是指向window了

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 737 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信