因为在整理梳理闭包,看到这段代码,有两个问题:
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用的不对吗?
胡子哥哥
慕标5832272
呼唤远方
相关分类