闭包的性能问题

来源:7-1 [JavaScript]理解闭包

慕娘5227020

2016-04-21 17:33

例如,老师课程中的例子,有如下两种解决办法,这种情况下请问用闭包是不有些耗内存呢?

	var aBtn = document.getElementsByTagName('button');
	for(var i=0;i<aBtn.length;i++)
	{
		!function(i){
				aBtn[i].addEventListener('click',function(){
				console.log(i);
			});
		}(i);
		
	}

	for(var i=0;i<aBtn.length;i++)
	{
		aBtn[i].index = i;
		aBtn[i].addEventListener('click',function(){
			console.log(this.index);
		});
	}


写回答 关注

2回答

  • yinyun
    2016-11-21 12:20:47
    已采纳

    由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不要滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。

    慕娘5227...

    非常感谢!

    2016-11-21 19:25:53

    共 1 条回复 >

  • Down_Up
    2016-04-29 12:08:07

    感觉第二个不会浪费内存呢!

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题