多态性是面向对象范式的核心概念,它提供了一种以不同形式执行单个动作的方法。它提供了在不同的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
让无涯教程看看基于原型方法的相同示例。
链接:https://www.learnfk.comhttps://www.learnfk.com/javascript/javascript-oops-polymorphism.html
来源:LearnFk无涯教程网
<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
这一章《JavaScript - 多态》你学到了什么?在下面做个笔记吧!做站不易,你的分享是对我们最大的支持,感谢!😊
clearInterval 在 React 功能组件中不起作用
重构我的 JavaScript 代码以删除更多而不仅仅是空格