Я ищу способ сделать наследование прототипов в node.js, который соответствует моему собственному стилю программирования.Для меня наиболее важно использовать переменные вместо того, чтобы «загрязнять» глобальное пространство имен (если вам не нравится эта идея, пожалуйста, пропустите это).Я нашел по крайней мере полдюжины описаний по этой теме (в Google более 270000 записей по этой теме).
Вот что я нашел самый многообещающий вариант, но у меня что-то не так:
> 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)
Как только я узнаю, как это работает, я надеюсь, что смогу сделать еще более сложные вещи, такие как:
var B = function() {
this.value = 2;
print();
}