Мне интересно, есть ли какая-то лучшая практика для того, чтобы дать поведение объекту, полученному извне (db, сеть и т. Д.) В javascript (nodejs).Как увеличить объект с помощью настраиваемого метода в javascript?
Например, предположим, что у меня есть функция getById(<Id>)
, которая извлекает правильный объект из db, как бы вы добавили метод save
на объект, возвращаемый этой функцией?
Вот что я хотел бы иметь:
var getById = function (id) {
var obj = callSomeExternalCode(id);
return obj;
};
var myObj = getById('1234');
myObj.aProperty = 'a_new_value';
myObj.save();
Я бы предпочел, чтобы избежать псевдо-классических решений (во всяком случае, я могу адаптировать его к моему стилю, если вы можете предоставить мне хорошую)
Edit: Я забыл упомянуть, это было бы очень хорошо, чтобы эти методы, определенные в отдельном «родительский» объект (даже если, как я полагаю, прото-наследование не является ответом)
Благодаря
Я знаю, что это может показаться «грязным», но, как указано [здесь] Http: // StackOverflow.com/questions/5777641/storageing-and-retrieving-javascript-objects-in-from-mongodb), можно поменять объект «prototype» в v8 .... это выглядит слишком грязным для вас? – ArtoAle
Да, я думаю, что [нестандартное свойство '__proto__'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/proto) довольно грязное - оно не будет работать в IE. Разумеется, иногда может быть полезно «Object.setPrototypeOf», но я боюсь, что стандартного способа нет ... – Bergi
О, это не проблема, это проект только для узлов :) В любом случае, я согласен. Поскольку он не полностью стандартизован, мне это неудобно: D – ArtoAle