多态性是面向对象范式的核心概念,它提供了一种以不同形式执行单个动作的方法。它提供了在不同的JavaScript对象上调用相同方法的函数。由于JavaScript不是一种类型安全的语言,因此无涯教程可以使用该方法传递任何类型的数据成员。
看一个示例,其中子类对象调用父类方法。
<script> class A { display() { document.writeln("A is invoked"); } } class B extends A { } var b=new B(); b.display(); </script>
输出:
A is invoked
看一个示例,其中子类和父类包含相同的方法。在这里,子类的对象调用两个类的方法。
<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
让无涯教程看看基于原型方法的相同示例。
<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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)