快速理解JS的闭包
/*
*闭包:1.在函数内部改变变量值,不影响函数外全局变量(相当于JAVA中私有变量)
*        2.调用闭包后,最后产生的变量值并不释放。
*        3.任何人调用闭包,闭包里面的值并不互相影响,都是最初定义的值。
*/
例子讲解1:
var name='window';
var qinbb={
	name:'qinbb',
	getName:function(){
console.log(this);//这里的this指的是对象qinbb return this.name;就对了
		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的闭包的更多相关文章
- 深入理解JS的闭包
		
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域 ...
 - 我从没理解js的闭包,直到他人向我这么解释。。。
		
前段时间根据执行上下文写过一次闭包,但是写的简陋些.昨天在twitter上看到这篇文章,感觉背包的比喻挺恰当的.所以就翻译了. 这篇文章有些啰嗦,但是讲解很细,希望还是耐心看完.也欢迎指出错误. 原地 ...
 - 快速理解js中的call,apply的作用
		
今天被人问到js中的call,apply的区别和用途,解释了一番后,想到之前在逼乎上看到一位小伙伴生动形象的解释 本身不难理解,看下MDN就知道了,但是不常用,遇到了,还要脑回路回转下.或者时间长了, ...
 - 关于js中闭包的理解
		
1.以前很不理解js中闭包的概念及使用,下面来看一下 function foo() { var a = 123; var b = 456; return function () { return a; ...
 - javascript深入理解js闭包
		
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
 - 深入理解JS闭包
		
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
 - 通俗易懂的深入理解js闭包
		
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域 ...
 - 理解js闭包(二)
		
@(编程) 一.什么是闭包? 官方"的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 相信很少有人能直接看懂这句话,因为他 ...
 - javascript深入理解js闭包[转]
		
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
 
随机推荐
- Day One studying english
			
I start study english lately,but the is no basis for english.Only i use baidu translation,google tra ...
 - ODAC (V9.5.15) 学习笔记(二十)大数据量获取处理
			
ODAC获取数据的效率比较高,在Web程序中希望能够更快获取第一页的数据时,可以有几种方式: 1.在数据库中进行分页处理: 2.获取所有数据,只是快速返回第一页数据. 第一种方案对应用服务器资源消耗最 ...
 - oracle数据库的字符集更改
			
A.oracle server 端 字符集查询 select userenv('language') from dual 其中NLS_CHARACTERSET 为server端字符集 NLS_LAN ...
 - (转)在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?
			
@SuppressLint 和 @TargetApi达到的效果是一样的,相对于SuppressLint ,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是Suppre ...
 - 让我们一起Go(十)
			
前言: 本系列还没流产,继续难产中,哈哈,只怪我没专心,在期间又偷偷去学了python,ruby,scala,haskell这几种语言,如果你不幸是本系列的读者,那么你得慢慢等后面的了,等不及可以过几 ...
 - Entity Framework访问MySQL数据库的存储过程并获取返回值
			
一.创建MySql存储过程 1, CREATE PROCEDURE `InsertAlarmInfo`(in businessindex int, in providerindex int, in ...
 - 导出excel和PDF小结 vba
			
最近接触了一个关于Access工具的项目,所以整理下需要使用的方法. 功能要求简介: 1.将数据表中的数据导出到excel和PDF 2.并根据某个字段名称分sheet输出. 3.无模板方式 方案简介: ...
 - 我所研究过的 ASP.NET MVC 或者 .NET 或者 ORM 或者框架的开源项目
			
ASP.NET MVC 的开源项目有很多,这里列出我所研究过的: SocialGoal v1.0.0 prodinner nopCommerce SmartStore.NET 由于今天才做收集工作,可 ...
 - Android 简单计算器源码....
			
PS:今天算是闲着没事做了一个小型的计算器...顺便熟悉一下Android的布局,组件,以及时间监听的方法...就当是做了一个小小的练习吧... 顺便去对比了一下别人写的代码...有的使用到了 ...
 - 点餐APP 冲刺三总结
			
一转眼所有的冲刺都完成了,而今次的冲刺主要是完善数据库,而我们 也成功地实现了,虽然过程很艰辛,但是我们每一个人都学习到了很多新 知识,这是最好的收获.因为今学期没有软件工程的课程,所以大家都是 利用 ...