function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000
不是很懂这段代码
为什么第一次result的时候结果是999,这段代码不是按顺序执行的么?
还是说nAdd()必须调用才能使用,不然直接跳过直接运行alert?
nAd没有var ,所以是全局变量,所以需要调用?
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"; var object = { name : "My Object", getNameFunc : function(){ var that = this; return function(){ return that.name; }; } }; alert(object.getNameFunc()());
这个程序的结果是
"My Object",
上面的都是我在网上看见的,是一段关于闭包的文章,网址如下
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
Walk_
相关分类