Я вижу некоторое нечетное поведение в тесте 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. Что здесь происходит?