В JavaScript нестандартное свойство __ proto__ и функция Object.getPrototypeOf(...) возвращают внутреннее свойство [[Prototype]].
Для всех функций свойство «прототип» является экземпляром Object.prototype, например:
Array.prototype instanceof Object//true
Но не так с Object.prototype:
Object.prototype.__proto__ === null //true
Object.getPrototypeOf( Object.prototype ) === null //true
В документация для разработчиков Mozilla говорит только:
Свойство proto объекта ссылается на тот же объект, что и его внутренний [[Prototype]] (часто называемый «прототипом»), который может быть объектом или, как в случае Object.prototype по умолчанию. .прототип, null .
Было бы более уместно, чтобы Object.prototype.proto или ошибка Object.getPrototypeOf (Object.prototype) возвращали Object.prototype?
Это ошибка? Это нормально? Зачем?
[[GetProperty]]
никогда не будет истинным, поэтому поиск несуществующего свойства вызовет бесконечный цикл поObject.prototype
. Пошаговые тесты для нулевого прототипа, обозначающего вершину цепочки прототипов; без прототипаnull
цепочка заканчивается петлей. - person apsillers   schedule 21.08.2013