当前位置: 首页 > 编程笔记 >

如何在JavaScript中实现多态?

齐奕
2023-03-14
本文向大家介绍如何在JavaScript中实现多态?,包括了如何在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
 类似资料:
  • R2DBC目前不支持复合键。我想知道我们现在如何实现多对多关系? 例如,给定两个实体: 以及它们的模式: 我可以为多对多映射创建一个表: 但是,我们应该如何在kotlin/java中定义映射类ItemTag? 或者省略可以吗?那么类就不能有任何?我想那很好。这是唯一的含义吗?

  • 问题内容: 我相信标题是不言而喻的。如何在PostgreSQL中创建表结构以建立多对多关系。 我的例子: 问题答案: SQL DDL(数据定义语言)语句如下所示: 我强烈建议您这样做,因为产品名称几乎不是唯一的(不是很好的“自然键”)。此外,强制使用唯一性并在外键中引用该列通常比使用存储为或的字符串便宜(4字节(甚至8字节))。 不要使用基本数据类型的名称作为 标识符 。尽管这是可能的,但这是不好

  • 问题内容: 我正在制作一个具有多对多关系的SQLite数据库,并使用以下代码将其分解为两个一对多的关系 错误: 有谁知道我该如何解决这个错误? 问题答案: 查看文档; 它向您表明,如果您在字段定义本身上指定了外键,则不应使用关键字本身。此外,正如 CL 指出的那样,您使用了太多逗号 。 ,即使单独指定约束,外键名称也不应放在括号中。 该语句可以满足您的要求: 还要注意,如果MODULEID是表MO

  • 问题内容: 在JavaScript中实现堆栈和队列的最佳方法是什么? 我正在寻找shunting-yard算法,并且我将需要这些数据结构。 问题答案: var stack = []; stack.push(2); // stack is now [2] stack.push(5); // stack is now [2, 5] var i = stack.pop(); // stack is no

  • 请把这个问题当作严格的教育问题来处理。我仍然有兴趣听到新的答案和想法来实现这一点 如何用JavaScript实现双向数据绑定? 通过与DOM的数据绑定,我的意思是,例如,拥有一个带有属性的JavaScript对象。然后拥有一个DOM元素(例如),当DOM元素发生变化时,也会发生变化,反之亦然(也就是说,我指的是双向数据绑定)。 在简单的JavaScript中实现这一点的一些基本技术是什么? 具体来

  • 我正在做一个小型的laravel项目来实现雄辩的关系,我主要有多个模型(项目、任务、用户、文件等) 一个项目可以分配多个用户,附加多个文件,也可以有多个任务。一个任务可以分配多个用户,也可以分配多个文件,以及多个其他东西。我已经谷歌和实施了hasManyPass,和归属许多关系,但我对关系感到困惑很多。有什么帮助吗? Project.php Task.php User.php 我得到的错误是,当我