JavaScript教程-JavaScript多态性
多态性是面向对象范式的核心概念,它提供了以不同形式执行单一操作的方式。它允许在不同的JavaScript对象上调用相同的方法。由于JavaScript不是一种类型安全的语言,我们可以通过方法传递任何类型的数据成员。
JavaScript多态性示例1
让我们看一个例子,其中子类对象调用父类方法。
class A {
display() {
document.writeln("A被调用了");
}
}
class B extends A {
}
var b = new B();
b.display();
输出:
A被调用了
示例2
让我们看一个例子,其中子类和父类都包含相同的方法。在这里,子类的对象调用了两个类的方法。
class A {
display() {
document.writeln("A被调用了<br>");
}
}
class B extends A {
display() {
document.writeln("B被调用了");
}
}
var a = [new A(), new B()];
a.forEach(function(msg) {
msg.display();
});
输出:
A被调用了
B被调用了
示例3
让我们看一下使用基于原型的方法实现相同的示例。
function A() {
}
A.prototype.display = function() {
return "A被调用了";
};
function B() {
}
B.prototype = Object.create(A.prototype);
var a = [new A(), new B()];
a.forEach(function(msg) {
document.writeln(msg.display() + "<br>");
});
输出:
A被调用了
B被调用了