在C#中,我们有关于抽象方法的概念,以及如何在Javascript中应用它。例子,我有一个例子:
function BaseClass() {
this.hello = function() {
this.talk();
}
this.talk = function() {
alert("I'm BaseClass");
}
};
function MyClass() {
this.talk = function() {
alert("I'm MyClass");
}
BaseClass.call(this);
};
MyClass.prototype = new BaseClass();
var a = new MyClass();
a.hello();
当对象是MyClass的实例时,BaseClass中的hello()函数如何从MyClass调用函数do()。警报结果必须为“我是MyClass”。请帮我。谢谢。
最佳答案
您可能要先调用“Base”构造函数:
function MyClass() {
BaseClass.call(this);
this.talk = function() {
alert("I'm MyClass");
}
}
否则
BaseClass.talk
将覆盖MyClass.talk
。附带说明一下,在javascript中使用“类”的概念会适得其反,因为这不是该语言的工作方式。 JS使用原型(prototype)继承,即您从其他对象而不是“类”派生新对象。同样,从C++的 Angular 来看,JS中的每个函数都是“虚拟的”,因为它的
this
指针取决于函数的调用方式,而不取决于函数的定义位置。