Je cherche un moyen de faire l'héritage prototypal dans node.js qui correspond à mon propre style de programmation. Le plus important pour moi est d'utiliser des variables au lieu de "polluer" l'espace de noms global (si vous n'aimez pas cette idée, sautez celle-ci). J'ai trouvé au moins une demi-douzaine de descriptions sur le sujet (google a plus de 270000 entrées sur celui-là).héritage prototypique dans node.js
Voici ce que j'ai trouvé la variante la plus prometteuse, mais j'ai quelque chose de mal:
> var A = function() {
... this.value = 1;
... };
> A.prototype.print = function() {
... console.log(this.value);
... }
[Function]
> var a = new A();
> a.print();
1
> var B = function() {
... this.value = 2;
... };
> B.prototype.__proto__ = A.prototype;
> b = B();
> b.print()
TypeError: Cannot call method 'print' of undefined
at [object Context]:1:3
at Interface.<anonymous> (repl.js:150:22)
at Interface.emit (events.js:42:17)
at Interface._onLine (readline.js:132:10)
at Interface._line (readline.js:387:8)
at Interface._ttyWrite (readline.js:564:14)
at ReadStream.<anonymous> (readline.js:52:12)
at ReadStream.emit (events.js:59:20)
at ReadStream._emitKey (tty_posix.js:286:10)
at ReadStream.onData (tty_posix.js:49:12)
Une fois que j'ai découvert comment cela fonctionne, je l'espère, je peux faire des choses encore plus compliquées comme:
var B = function() {
this.value = 2;
print();
}
génial! Merci beaucoup, tu as sauvé ma journée – mark