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_
随时随地看视频慕课网APP
相关分类