Как значение параметра по умолчанию может ссылаться на другой параметр?

Поскольку instance1 уже создан. Ключевое слово new создает новый объект, выполняя функцию-конструктор, которая в вашем случае obj.

Поскольку вы изменили прототип после инициализации первого экземпляра, вы больше не имеете того же состояния (например, прототип) конструктора и не можете создать тот же объект. Но созданные все еще существуют, ссылаясь на старый прототип.

Когда вы снова используете конструктор obj, вы создаете еще один объект, который может быть очень грубо переведен в классический тип терминологии наследования как экземпляр другого класса.

Изменить: # 4 Эта скрипка: http://jsfiddle.net/doy3g1fh/ показывает, что

obj.prototype.y=6

преуспевает в изменении все существующие объекты. Таким образом, ответ, очевидно, заключается в том, что вы не должны назначать новый объект в качестве прототипа, а просто модифицировать текущий прототип.

13
задан Dominykas Mostauskis 16 June 2013 в 03:36
поделиться