正如在这个答案的更新3中所表明的那样,这种表示法:
var hash = {};
hash[X]
Run Code Online (Sandbox Code Playgroud)
实际上并不散列对象X; 它实际上只是转换X为一个字符串(通过.toString()它是一个对象,或者是各种基本类型的一些其他内置转换),然后在" hash"中查找该字符串,而不对其进行散列.也不检查对象相等性 - 如果两个不同的对象具有相同的字符串转换,它们将仅相互覆盖.
鉴于此 - 在JavaScript中是否有任何有效的哈希映射实现?(例如,第二个Google结果javascript hashmap产生一个实现,对于任何操作都是O(n).各种其他结果忽略了具有等效字符串表示的不同对象相互覆盖的事实.
我想知道JavaScript对象占用的大小.
采取以下功能:
function Marks(){
this.maxMarks = 100;
}
function Student(){
this.firstName = "firstName";
this.lastName = "lastName";
this.marks = new Marks();
}
Run Code Online (Sandbox Code Playgroud)
现在我实例化student:
var stud = new Student();
Run Code Online (Sandbox Code Playgroud)
所以我可以做类似的事情
stud.firstName = "new Firstname";
alert(stud.firstName);
stud.marks.maxMarks = 200;
Run Code Online (Sandbox Code Playgroud)
等等
现在,该stud对象将在内存中占用一些大小.它有一些数据和更多的对象.
如何找出stud对象占用的内存量?像sizeof()JavaScript中的东西?如果我能在单个函数调用中找到它,那将是非常棒的sizeof(stud).
我已经在互联网上搜索了几个月 - 找不到它(在几个论坛中询问 - 没有回复).