Да, один из недостатков использования неизменяемых объектов заключается в том, что они имеют тенденцию перегружать память. Одна вещь, которая приходит мне в голову, - это что-то похожее на ленивую оценку, которая заключается в том, что когда запрашивается новая копия, предоставьте ссылку, а когда пользователь сделает это. некоторые изменения затем инициализируют новую копию объекта.
Зачем использовать конструктор и прототипирование для одного объекта?
Приведенное выше эквивалентно:
var earth= {
someMethod: function () {
if (console && console.log)
console.log('some method');
}
};
privateFunction1();
privateFunction2();
return {
Person: Constructors.Person,
PlanetEarth: earth
};