var GlobalObject = (function(){
var arr1 = [];
var arr2 = [];
var arr3 = [];
var arr4 = [];
return {
}
})();
现在如何在整个应用程序中调用GlobalObject.arr1?
当我按下并弹出时,它会保持其参考和价值吗?
这会导致任何内存泄漏
最佳答案
arr1
仅在GlobalObject
函数的范围内定义。如果要全局访问它,则需要让GlobalObject
函数返回对其的引用。阅读functional scope in javascript可以更好地理解这一点。当前,您的函数返回一个空对象。您想做这样的事情:
...
return {
"array1": arr1,
"array2": arr2,
"array3": arr3,
"array4": arr4
};
(尽管您可以通过不返回这些数组来维护它们的私密性)
GlobalObject
将保留arr1
的引用和值,直到您手动取消引用(将其设置为null
)为止。 Javascript's garbage collector仅删除不再需要的对象。您当前的代码显示没有内存泄漏。注意circular references and closures。