在javascript中声明函数和内存优化

时间:2014-02-14 15:53:56

标签: javascript function memory-management

我正在以这种方式声明一个功能:

function clearScrollViewCont(elm,indx,array){

            elm.removeAllChildren();
        $.scrollView.scrollViewCont.remove(elm);
        elm = null;     
}

然后我在forEach函数中调用它:

$.scrollView.scrollViewCont.getchildren().forEach(clearScrollViewCont);

所有以前的代码都在另一个大函数内部,所以当从内存中删除这个大函数时,它的所有内容都将被清除,但我不知道什么是更快的释放内存的方法。我习惯于将每个我不再需要的变量置空(即使它写在一个大函数内)但现在,我想知道从已声明的函数中清除内存 在我之前的代码中,以这种方式声明'clearScrollViewCont'函数不会让我以后将其置空。另一方面,如果我这样声明:

 var clearScrollViewCont =  function (elm,indx,array){

        elm.removeAllChildren();
        $.scrollView.scrollViewCont.remove(elm);
        elm = null;     
    }

我可以稍后将其置零(简单地通过对'clearScrollViewCont'变量进行归零)但我不知道这本身是否需要更多的内存空间,然后第一种方式,因为现在我除了函数之外还声明了一个变量。 / p>

每种方式的优点和缺点是什么?

1 个答案:

答案 0 :(得分:1)

在我看来,两种方式都占用了相同的空间。你是否声明一个像:

这样的函数真的不重要
function clearScrollViewCont(elm,indx,array){}

var clearScrollViewCont = function(elm,indx,array){}

在这两种情况下都会创建一个Function对象,该对象可以通过其名称调用:clearScrollViewCont(...); 请记住,JavaScript函数也是对象:(Functions) 因此,在我看来,这两种方式都占用了相同的空间。