Je viens de réaliser récemment qu'il est en fait possible de modifier un prototype d'objets dans V8/node. Bien que cela ne soit pas dans la norme, cela est possible dans divers navigateurs et notamment en V8/node !
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!');
Ceci est utilisé dans divers modules et plugins - même les modules de base utilisent cette technique, bien que ce ne soit pas la norme ECMAScript. Je suppose donc qu'il est sûr de l'utiliser dans node.js.