如何在JavaScript中实现多态?

多态性

多态 是面向对象编程(OOP)的宗旨之一。它有助于设计对象,使其可以与特定提供的对象共享或覆盖任何行为。多态性 利用继承的 优势来实现这一点。

在以下示例中,子对象(例如“板球”和“网球”)已覆盖从父对象“游戏”调用的“选择”方法,并分别返回了新字符串,如输出所示。另一个子对象“足球”而不是覆盖select 方法,而是共享(继承)了该方法并显示了父字符串,如输出所示。

示例

<html>
<body>
<script>
   var game = function () {}
      game.prototype.select = function()   {
      return " i love games and sports"
   }
   var cricket = function() {}
   cricket.prototype = Object.create(game.prototype);
   cricket.prototype.select = function()                //  overridden the select method to display      {                                                         new string.  
      return "i love cricket"
   }
   var tennis = function() {}
   tennis.prototype = Object.create(game.prototype);  // overridden the select method to display new
   tennis.prototype.select = function()                  string              
   {
      return "i love tennis"
   }
   var football = function() {}
   football.prototype = Object.create(game.prototype);  // shared parent property
   var games = [new game(), new cricket(), new tennis(), new football()];
   games.forEach(function(game){
      document.write(game.select());
    document.write("</br>");
   });
</script>
</body>
</html>

输出结果

i love games and sports
i love cricket
i love tennis
i love games and sports