javaScript闭包

闭包:闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的常见的方式,就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。

在搞闭包之前,先了解几个匿名函数使用方法

例一:

//匿名函数赋值给变量
var test = function(){
	return 'haha';
};
alert(test);//返回的是整个function的代码
alert(test());//返回haha

例二:匿名函数如果直接执行是无法执行的,会提示没有函数名的错误信息

//匿名函数的自我执行	语法是	(匿名函数)();
(function(){
	alert('匿名函数执行');
})();


例三:

//将匿名函数自我执行的返回值赋值给一个变量
var test = (function(){
	return "test";
})();
alert(test);//返回test


例四:

//自我执行后用alert打印
alert((function(){
	return "test";
})());

例五:

//匿名函数传参
(function(value){
	alert(value);
})(500);

例六:

//获取函数里的函数的返回值
function test(){
	return function(){
	return "xxc";
	}
}
alert(test);//返回的是两层参数的代码
alert(test());//返回的是里面那个function的代码
alert(test()());//返回的是第二个函数的返回值xxc,以此类推
	
//获取函数里的函数的返回值,推荐用这个先将外层函数执行结果赋值给一个变量,然后再执行这个变量
var a = test();//获取test里return的那个函数的代码
alert("a-->"+a());//执行那个获取的函数

例七:闭包

//如果要使得下面函数完成自增功能,并且在函数外边能获取到值,这时候就需要使用到闭包()
function test(){
	var age = 0;
	return function(){
	age++;
	return age;
	};
}
alert(test()());//返回1
alert(test()());//返回1,因为每次都先初始化age的值
var a = test();
alert(a());//只执行自增部分的函数,初始化参数的函数只执行一次,后面不重复执行 返回1
alert(a());//返回2
a = null;//解除引用,等待垃圾回收






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值