Большое спасибо за ответы.
Object -> Object.prototype
Function -> Function.prototype -> Object.prototype
Т.е. Object.prototype является своего рода родителем всех объектов (к которым в том числе относятся и функции), как предопределенных, так и нет. Сначала свойства и методы ищутся у самого объекта, а потом по порядку у всех его прототипов, в том числе пока не дойдут до Object.prototype.
Правильно я понимаю?
Предполагаю даже, что конструкторы создаются именно за счет того, что в Function.prototype содержатся все необходимые для этого методы и свойства. И если я прав, то было бы не лишним узнать какие именно.
Также
здесь описано, что можно переопределить свойство Object.prototype. И насколько я понимаю, то же самое можно сделать и для свойств других предопределенных объектов. Не ясно только, как это все происходит, т.е. как мне назначить скажем новое свойство или метод, а самое главное, проверить и посмотреть (убедиться), что все получилось.