试图了解如何在 Javascript 中完成继承,我偶然发现了许多不同的实现,包括 Crockfords、Resigs、...Prototype
等klass
。
我错过了(我为骚动做好准备)是 Smalltalkish 的自我/超级对:self
扮演与 类似的角色this
,即代表当前的“对象”,并super
引用this
.
[跳到“]”如果您知道super
Smalltalk 中的功能:假设Subclass
已覆盖method1
定义 in Superclass
,我仍然可以使用super.method1()
in访问超类实现Subclass.method2()
。这不会执行Subclass.method1()
代码。
function Superclass () {
}
Superclass.prototype.method1 = function () {
return "super";
}
function Subclass () {
}
Subclass.prototype.method1 = function () {
return "sub";
}
Subclass.prototype.method2 = function () {
alert (super.method1 ());
}
var o = new Subclass;
o.method2 (); // prints "super"
]
那里有任何“Javatalk”包吗?到目前为止,我只看到了 Javascript 中的 OO 仿真,它可以访问当前定义的方法 ( method2
) 的超类实现,而不是任何其他方法 (例如method1
)。
谢谢,诺比