如果我有一个 javascript 对象并定义(例如)object.myproperty = uniqueObjID,那么我假设单词“myproperty”作为条目存储到创建的每个此类对象的哈希表中。换句话说,如果我创建 1000 万个这样的对象,我就必须为单词“myproperty”分配存储 1000 万次,因为编译器不知道对象一百万加一是否会有不同的存储空间。而是命名属性。
通过告诉 js 编译器该类型的所有对象都将具有“myproperty”值来节省内存的最佳方法是什么?做类似的事情就足够了
object.prototype.init(ID){ this.myproperty = ID}
最佳答案
if I create 10 million of these objects, I'd have to allocate storage for the word "myproperty" 10 million times, since the compiler doesn't know whether object one-million-and-one will have a differently named property instead.
是什么让您认为编译器无法区分具有 myproperty
属性的数百万个对象和具有不同名称属性的对象?事实上,这就是 JS 编译器所做的事情。
举个例子,看看 V8 引擎的 hidden classes (尽管他们做的不仅仅是一个简单的表)。
关于javascript - 避免 JavaScript 属性名称占用每个对象的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24097173/