以下面的代码示例为例:
var myObject = {};
var i = 100;
while (i--) {
myObject["foo"+i] = new Foo(i);
}
console.log(myObject["foo42"].bar());
我有几个问题。
主要引擎(IE、Mozilla、Chrome、Safari)使用什么样的数据结构来存储键值对?我希望它是某种二进制搜索树,但我认为它们可能使用链表(因为迭代是按插入顺序完成的)。
如果他们确实使用搜索树,它是自我平衡的吗?因为上面的代码使用传统的搜索树会创建一个不平衡的树,导致搜索的最坏情况是 O(n),而不是平衡树的 O(log n)。
我之所以这么问,是因为我将编写一个库,该库需要从数据结构中有效检索键,虽然我可以实现自己的或现有的红黑树,但如果它们是,我宁愿使用本机对象属性足够高效。