Javascript 将本地对象存储在全局对象中
这个函数生成新的对象——我们之前不知道——我想存储它们以备将来使用。这样行吗:Javascript 将本地对象存储在全局对象中,javascript,object,scope,Javascript,Object,Scope,这个函数生成新的对象——我们之前不知道——我想存储它们以备将来使用。这样行吗: var objs = {};// container (function doSth(){// might has to add new objects var ob1 = {id: 29938, name: 'name1'}; objs['ob1'] = ob1;// ??? objs['ob2'] = {id: 2000, name: 'name2'};// ??? })() // use th
var objs = {};// container
(function doSth(){// might has to add new objects
var ob1 = {id: 29938, name: 'name1'};
objs['ob1'] = ob1;// ???
objs['ob2'] = {id: 2000, name: 'name2'};// ???
})()
// use the obj later on like
console.log(objs['ob1'].id);
console.log(objs['ob2'].name);
我在堆上创建了一个新对象,并将引用存储在全局对象中供以后使用。因为我存储了引用,所以假设没有垃圾收集,访问也正常根据 …此算法将“不再需要对象”的定义减少为“对象没有其他对象引用它”。如果没有指向该对象的引用,则该对象被视为垃圾回收对象 因此,只要您有对这些对象的引用,它们就不会被垃圾收集。 例如:
var o = {
a: {
b: 2
}
}; // 2 objects are created. One is referenced by the other as one of its properties.
// The other is referenced by virtue of being assigned to the 'o' variable.
// Obviously, none can be garbage-collected
// You can also free the memory by removing all references to that object, e.g.,
o.a = null;
当然任何可以访问的对象都不是垃圾,因此不会被收集。没有本地和全局对象。只有局部变量和全局变量。是的,很好。它会很好地工作。你在这里有完整的代码来演示它是否工作,你试过运行它来看看会发生什么吗?是的,它工作,但这还不够。我这样问是因为在irc javascript中,有些人似乎对我说它不好。