Jag insåg nyligen att det faktiskt är möjligt att ändra ett objekts prototyp i V8/nod. Även om detta inte är i standarden är det möjligt i olika webbläsare och speciellt i V8/nod!
function User(username, email) {
this.username = username;
this.email = email;
}
User.prototype.sendMail = function (subject, text) {
mailer.send(this.email, subject, text);
};
var o = {username: 'LoadeFromMongoDB', email: '[email protected]'};
o.__proto__ = User.prototype;
o.sendMail('Hello, MongoDB User!', 'You where loaded from MongoDB, but inherit from User nevertheless! Congratulations!');
Detta används överallt i olika moduler och plugins - även kärnmoduler använder sig av denna teknik, även om det inte är ECMAScript-standard. Så jag antar att det är säkert att använda inom node.js.