prototype
является только значимым свойством конструкторов. Фактический прототип объекта (который доступен в некоторых средах как свойство __proto__
, но не является переносимым) устанавливается как атрибут конструктора prototype
во время создания объекта. Изменения в прототипе конструктора (добавление свойств к прототипу) будут отражены в живых объектах, но не в том случае, если вы установите Constructor.prototype
как совершенно другой объект.
В вашем конструкторе вы устанавливаете атрибут prototype
построенного объекта (this
). Этот атрибут не имеет особого значения для чего-то, что не является функцией конструктора. Когда вы устанавливаете это вне функции, вы устанавливаете это на функции конструктора.