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