лучей добра всем! Возник вопрос, холиворный наверное, насчет использования свойства __proto__ в node.js. Есть некие декларативные объекты JS, записанные в отдельных файлах, для примера:
User = {
title: 'пользователь',
fields: {
Name: {
type: 'string',
minSize: 3,
title: 'Имя'
}
}
}
но не JSON, т.к. может помимо декларативных свойств иметь небольшие функции (validate например)
помимо всего прочего, эти объекты должны иметь прототипы, со своим, базовым функционалом (в основном методы).
Так вот, как делают в лучших домах кремниевой долины - создать конструкторы объектов (ака классы), и использовать их, или проставить прототипы пользуясь свойством __proto__, которое в nodejs/v8 определено и доступно (более того, вроде как уже и в ECMAScript внесли)?
Конструкторы выглядят логичнее:
User = new User({
title: 'пользователь',
fields: {
Name: new Field({
type: 'string',
minSize: 3,
title: 'Имя'
}),
}
});
а с __proto__ - менее многословно (тем более, если учесть отсутствие кучи require(") в заглавии) и более декларативно. Кроме того, запись
Name: new Field({
type: 'string',
minSize: 3,
title: 'Имя'
}),
Пример простой, на самом деле вложение объектов может быть достаточно большое. Holy question - насколько уродски использование __proto__ в программе?