<!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了
添加回答
举报
0/150
提交
取消