我正在寻找如何在node.js中做适合我自己的编程风格的原型继承的方法。对我来说最重要的是使用变量而不是“污染”全局命名空间(如果你不喜欢这个想法,请跳过这一点)。我发现至少有六个关于这个主题的描述(谷歌在那一个上有超过270000个条目)。node.js中的原型继承
这是我发现的最有前途的变量,但我有一些错误:
> 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();
}
太棒了!非常感谢,你救了我的一天 – mark 2011-04-25 10:03:28