问答详情
源自:7-1 [JavaScript]理解闭包

闭包的性能问题

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

	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);
		});
	}


提问者:慕娘5227020 2016-04-21 17:33

个回答

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

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

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

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