Я вижу некоторое нечетное поведение в тесте jsperf. Вот установка:Почему двойной поиск быстрее, чем один поиск в javascript?
var pro={};
pro._x=3;
var q=Object.create(pro);
q.x=3;
q.z={};
q.z.x=3;
Тогда я просто LookUp каждое из свойств q.x
, q._x
и q.z.x
.
Единый поиск q.x
быстрее, чем поиск прототипа q._x
, как и ожидалось. Но двойной поиск q.z.x
является самым быстрым. Я ожидал, что q.z.x
будет самым медленным, особенно по сравнению с q.x
.
q.z.x
еще быстрее, чем q.z
. Что здесь происходит?
Я нахожусь на хроме 38. – gloo
Оптимизация компилятора ... – RobG
Я знаю, что все они одинакового порядка, поэтому это не имеет большого значения, но для меня это не имеет смысла. – gloo