作者回复: 我们拿object vs. map 为例,几个肉眼可见的原因是:1. 对象只允许键是字符串或符号,如果是其它类型,就会被转化成字符串。2. 继承不必要的属性,var hashMap = {} 会继承很多map不需要的属性 3. 缺少一些需要的属性比如获取大小等。除此之外通过性能测试也可以看到性能差异。
作者回复: 举个例子,按照文中讲的,你可以1. 在开发者工具的console tab输入下面代码,2. 然后到 memory tab 点击 take snapshot 3. 搜索NumItem就可以找到相关对象@符号后面的地址。 function NumItem(x) { this.x = x; } function generateNum() { var result = new Array(20); for (var i = 0, l = result.length; i < l; i++) { result[i] = new NumItem(i); } return new NumItem(result); } generateNum();