Почему объект. прото. proto not null?
мое понимание заключается в том, что Object.__proto__
является прототипом объекта "верхнего уровня" в javascript. Я бы кроме ее __proto__
быть null, но в Google Chrome (не пробовали другие браузеры), это не так. Почему так?
редактировать
Я знаю, что следующее изображение, вероятно, является повторным хэшем приведенного ниже, но я сделал это сам, чтобы проверить свое понимание. С ним что-то не так?
2 ответов
Object
- Это функция, это __proto__
является пустой функцией function() {}
. Корневой объект является пустым объектом {}
, а не Object
. Итак, когда у вас есть такой объект, как {foo:1, bar:1}
его отношения выглядят так:
я думаю, вы ошибаетесь Object.__proto__
на Object.prototype
.
Object.prototype.__proto__
действительно null, потому что Object
ничего не продлить.
Object
сам по себе, однако, является функцией - ака. пример Function
.
С Function
выходит Object
, это прототип имеет __proto__
собственность.
Таким образом, вы можете сделать крюк Object.__proto__.__proto__
до Object.prototype
по сути:
Object.prototype === Object.__proto__.__proto__ // should yield true