关于js闭包的思考题的个人解答

来源:互联网 发布:淘宝互刷流量 编辑:程序博客网 时间:2024/05/16 02:27

原题为:

var name = "The Window";   var object = {     name : "My Object",     getNameFunc : function(){       return function(){         return this.name;      };     } }; alert(object.getNameFunc()()); 

答案为:The Window


我的个人理解为:

将原题解释为

var name = "The Window"; function al() {return this.name;}  var object = {     name : "My Object",     getNameFunc : function(){       return al;    } }; alert(object.getNameFunc()()); 

此处

function(){         return this.name;      }; 

是全局变量。

所以取到的是全局变量的name值。


后来,看到http://www.cnblogs.com/RitaRichard/archive/2011/10/14/2212161.html 关于js中this的用法

应该是解释为this为指向全局对象的,但仍旧是百思不得其解。

在群里的老大们的帮助下,才发现,这有点儿像是一道数学题。如下

object.getNameFunction()();
解释为:
var al = object.getNameFunction();
 al();
其中 al = function() {
  return this.name;
}




原创粉丝点击