首页 > 其他分享 >牛客JS题(十九)继承

牛客JS题(十九)继承

时间:2024-08-03 19:59:09浏览次数:10  
标签:name Chinese age yellow JS 牛客 Human prototype 十九

注释很详细,直接上代码

涉及知识点:

  1. 构造函数实现类
  2. ES6类的写法
  3. 原型链的应用

题干:
在这里插入图片描述

我的答案

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <script type="text/javascript">
      /**
       * 好眼熟,之前咱好像在题目规定使用class时用构造函数也写了一遍
       * 所以这里咱再来一遍,当复习了
       */
      function Human(name) {
        this.name = name;
        this.kingdom = "animal";
        this.color = ["yellow", "white", "brown", "black"];
      }

      function Chinese(name, age) {
        Human.call(this, name);
        this.age = age;
        this.color = "yellow";
      }

      //在Human的原型上定义getName方法
      Human.prototype.getName = function () {
        return this.name;
      };

      //继承Human原型(记得new而不是直接赋值,因为js赋值的是地址,会将两者绑定)
      Chinese.prototype = Object.create(Human.prototype);

      //重写Chinese的构造函数将原型链的constructor指回Chinese,正所谓作业可以抄但名字记得改
      Chinese.prototype.constructor = Chinese;

      //在Chinese的原型上定义getAge方法
      Chinese.prototype.getAge = function () {
        return this.age;
      };

      //这里我们再来用Es6的class语法来实现一遍,体验一下Es6的语法的便捷
      class Human1 {
        constructor(name) {
          this.name = name;
          this.kingdom = "animal";
          this.color = ["yellow", "white", "brown", "black"];
        }
      }

      class Chinese1 extends Human1 {
        constructor(name, age) {
          super(name);
          this.age = age;
          this.color = "yellow";
        }

        getAge() {
          return this.age;
        }
      }
    </script>
  </body>
</html>

博客更新不是很及时,需要看后面内容的可以看看我的gitee仓库

牛客JS题Gitee仓库

标签:name,Chinese,age,yellow,JS,牛客,Human,prototype,十九
From: https://blog.csdn.net/m0_73756108/article/details/140886237

相关文章

  • weapp.qrcode.esm.js
    /***weapp.qrcode.jsv1.1.5*/varhasOwn=Object.prototype.hasOwnProperty,toStr=Object.prototype.toString,defineProperty=Object.defineProperty,gOPD=Object.getOwnPropertyDescriptor,isArray=function(t){return"function"==typeofArray.isArray?Ar......
  • 【JS】自调用函数怎么用?
    自调用函数定义自调用函数,也称为立即执行函数表达式(IIFE),是一种在定义后立即执行的函数(也就是说不用另外调用执行了)。它的主要目的是创建一个新的作用域,避免全局变量的污染。优势可以立即执行,不需要等待其他代码的执行。创建了新的作用域,可以保护内部的变量和函数不被外部......
  • 某象滑块js逆向
    ​声明:本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wxa15018601872       本文章未经许可禁止转载,禁止任何修改后二次传播,......
  • Node.js path模块
    在Node.js中,path模块用于处理和转换文件路径。以下是一些常用的path模块方法及其说明:path.basename(path[,ext])返回路径中的最后一部分,即文件名。示例:constpath=require('path');console.log(path.basename('/foo/bar/baz/asdf/quux.html'));//输出:'quux.htm......
  • 深入探究 Vue.js 高级技术:从响应式系统到高效组件设计的实战指南
    这里有一些实用的Vue.js高级示例,涵盖了前面提到的高级知识点,适合在实际项目中应用:1.自定义响应式数据使用Vue3的customRefAPI创建一个自定义的响应式输入框,带有防抖功能。import{customRef}from'vue';functionuseDebouncedRef(value,delay=300){......
  • 2024牛客多校6
    第五场太抽象了,失去补题欲望6ACake(A)首先假设字符串已经确定,对Oscar而言,由于一份蛋糕可以为空,在两人都尽可能取最大值的情况下,相当于忽略所有空的部分、只根据字符串的某个前缀\(s'\)划分蛋糕,按照字符串中0占比最大的前缀平均划分一定是最优的。回到游戏第一步,已知Oscar的......
  • nodejs使用child_process模块启动(exec和spawn)子线程任务,子进程实例的kill()方法无效的
    以下内容在win10环境下的执行分析(这里就不对进程和线程做区分了):child_process.exec和child_process.spawn启动进程的区别。shell<string>Shelltoexecutethecommandwith.SeeShellrequirementsandDefaultWindowsshell.Default:'/bin/sh'onUnix,process.env.C......
  • JS阻止事件冒泡的方法
    JS事件冒泡在一个对象上触发某类事件(如单击onclick事件),如果此对象定义了此事件的处理程序,此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的......
  • 硬件开发笔记(二十九):TPS54331电源设计(二):12V转3.3V和12V转4V原理图设计
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140868749长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • shell获取敏感词接口json数据更新时重启nginx+lua环境、一个逐步删除服务器上文件夹的
    一、shell获取敏感词接口json数据如有更新重启nginx+lua环境    因为工作需要,需要写一个shell脚本获取对应接口的数据(其它管理后台控制的敏感词库)。因为当前平台是nginx+lua脚本,重装加载敏感词需要重启nginx.实现起来也很简单,第一点,需要对获取的json数据进行分析,shell......