прототипы javascript и наследование [дубликат]
Мой вопрос: Object является последним в цепочке прототипов, все объекты наследуют свойства и методы от него, как он наследует методы от Function.prototype, почему Object.__proto__ === Function.prototype// true, почему Object.__proto__не null.
Ответы
Фундаментальный код Objectв JavaScript должен иметь возможность для его создания, поэтому он требует, чтобы prototypeобъект помогал в таких строках:
let myObj = new Object();
И поэтому Object.__proto__нет null.
FunctionОбъект представляет собой особый тип объекта , который облегчает объект экземпляр с помощью конструкторы и когда используется этот способ известен как «конструктор функция». Таким образом, имеет смысл Objectунаследовать от Functionобъекта, чтобы можно было создавать экземпляры объекта.
Функция - это тоже объект. Так что он тоже наследуется от Object.
Но пусть вас не смущает Object.__proto__. Это то, что добавляет браузер и на самом деле не является частью языка. Так что не полагайтесь на это и не используйте это.
По сути, Function.prototypeесть Object.__proto__.