码迷,mamicode.com
首页 > Web开发 > 详细

快速理解JS的闭包

时间:2016-08-12 14:57:17      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

/*
*闭包:1.在函数内部改变变量值,不影响函数外全局变量(相当于JAVA中私有变量)
*        2.调用闭包后,最后产生的变量值并不释放。
*        3.任何人调用闭包,闭包里面的值并不互相影响,都是最初定义的值。
*/
例子讲解1:
var name=‘window‘;
var qinbb={
name:‘qinbb‘,
getName:function(){
return function(){
console.log(this);//function的this指的 Window {external: Object, chrome: Object, document: document, qinbb: Object, speechSynthesis: SpeechSynthesis…}
return this.name;//这里的this指的是return function()的this,因此是全局变量var name=‘window‘;
};
}
};
qinbb.getName()();//输出:‘window‘ 方法调用在方法名后面添加(),若是方法里面还有方法就要在后面再添加();
例子讲解2、3:
function a(){
var n=1;
function b(){
n++;
return alert(n);
}
return b();//若是 return b;
}
var c=a();//输出2
var d=a();//输出2
//若是 return b;
var c=a();
c();//输出2 方法调用在方法名后面添加()

快速理解JS的闭包

标签:

原文地址:http://www.cnblogs.com/qinbb/p/5764844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!