Я вижу некоторое нечетное поведение в тесте jsperf. Вот настройка:
var pro={};
pro._x=3;
var q=Object.create(pro);
q.x=3;
q.z={};
q.z.x=3;
Затем я просто просматриваю каждый из свойств q.x
, q._x
и q.z.x
.
Единственный поиск q.x
быстрее, чем поиск прототипа q._x
, как и ожидалось. Но двойной поиск q.z.x
является самым быстрым. Я ожидал, что q.z.x
будет самым медленным, особенно по сравнению с q.x
.
q.z.x
еще быстрее, чем q.z
. Что здесь происходит?