我有一个函数,其中使用了闭包,具体如下:
function myobject() {
var width=300,
height=400,
bigjsondata = { } // assume this is a big variable ~ 300k
function obj(htmlelement) {
// plot a graph in this htmlelement based on bigjsondata
}
return obj;
}
var plot1 = myobject();
plot1('#holder1');
var plot2 = myobject();
plot1('#holder2');
变量
bigjsondata
包含一个大数据集。问题是:每当我创建变量var a = myobject()
时,它是否会为bigjsondata
分配内存?如果创建了很多实例,这是否会导致内存问题?如果是的话,最好的方法是什么?只加载一次(
bigjsondata
不会改变)。
编辑:最后,我希望myobject
可以全局访问。
obj.data
是一个 setter 函数时,bigjsondata
没有改变呢? - Bergimyobject
应该返回obj
函数吗? - Bergi