javascript闭包

js闭包,用函数传参的方式,利用函数参数,保存现场,例子就是每隔一秒输出一个大小为4的数组中的内容,顺序。
function greetingMaker (greeting){
	function addName(name){
	<span style="white-space:pre">	</span>return greeting + ' ' + name;
	}
	return addName;
}
var dayTimeGreeting = greetingMaker("good day to you");
for (var i = 0; i < 1000000; i++) {
	dayTimeGreeting('linda');
}


function greetingMaker2 (greeting,name){
	return greeting + ' ' + name;
}	
for(var i = 0; i <10000; i++ ){
	greetingMaker2("good night to you","linda");
}

在这个例子中,经过测试下面一个性能优于上面一个。但是:
我们要尽可能的避免全局变量,因为它和库有潜在的冲突,有时候你需要存储跨越几个函数调用的使用,但是你不想每次都必须重复的给该函数发送这些信息。维持这些从一个函数到另一个函数的一种方法,就是在一个函数内部创建一个函数,让他们都访问该数据,然后从外围函数返回内部函数,从另一个函数返回一个函数,这叫做函数闭包。
意外闭包,导致持久性的内存泄漏。
function outFunction(){
     var doc = document.getElementById("doc");
     var newobj = {'doc':doc};
     doc.newObj = newObj;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值