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

有关js闭包问题

有关js闭包问题

噜噜哒 2018-12-07 05:48:06
因为在整理梳理闭包,看到这段代码,有两个问题: var name = "The Window"; var object = {   name : "My Object",   getNameFunc : function(){     return function(){       return this.name;    };   } }; alert(object.getNameFunc()()); //The Window ① 输出The Window的原因是什么?~不是应该输出My Object吗?~this不是对象字面量object的作用域么; ②因为有了第一问,所以我把代码写在html文档中看看输出结果,代码如下(因为是测试用的,所以尽量简单): <!doctype html> <html> <head></head> <script> window.onload = (function() { var name = "The Window";    var object = {     name : "My Object",     getNameFunc : function(){       return function(){         return this.name;      };     } }; alert(object.getNameFunc()()); }); </script> <body> </body> </html> 弹出来的是一个没有内容的提示框。=。=这就奇怪了,难道window.onload用的不对吗?
查看完整描述

7 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

谢谢你的回答~不过,我疑问的不是“弹出的内容不是undefined ”,而是它根本没有内容弹出来,测试环境时chrome 30.0.1599.101 m

查看完整回答
反对 回复 2018-12-24
?
慕标5832272

TA贡献1966条经验 获得超4个赞

@yuyangtudou: 我懂你的意思^_^~不过呢,我还想请教你,对于”var name = "The Window";”这应该算是全局变量,而对于全局变量那不都是挂在window对象下的吗?混乱了=。=

查看完整回答
反对 回复 2018-12-24
?
呼唤远方

TA贡献1856条经验 获得超11个赞

@幻天芒: 谢谢

查看完整回答
反对 回复 2018-12-24
  • 7 回答
  • 0 关注
  • 482 浏览
慕课专栏
更多

添加回答

举报

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