首页 > 其他分享 >js 实现 类继承 通过super 给父级传参的效果

js 实现 类继承 通过super 给父级传参的效果

时间:2023-03-31 11:33:14浏览次数:38  
标签:传参 function name 父级 age js es5parent es5child sex

通过es5 实现 类继承 通过super 给父级传参的效果

先看看 原型继承

  function es5parent(name, age) {
    this.name = name;
    this.age = age;
  }

  es5parent.prototype.say = function() {
    console.log(this.name, this.age, this.sex);
  }
  
  function es5child(sex) {
    this.sex = sex;
  }
  
  es5child.prototype = new es5parent('李四',21);
  es5child.prototype.say1 = function() {
    this.say();
  }

  const es5obj = new es5child('女');
  es5obj.say1(); //输出 李四 21 女

这里 实例是无法像父构造函数传参的,在实例对象之前就已经调用了父函数

再看看 类继承, 是可以通过创建实例化对象的时候 把参数通过super传递到父类

  class parent {
    constructor(name, age){
      this.name = name;
      this.age = age;
      console.log(name, age); // 输出 张三 23
    }
    say() {
      console.log(this.name, this.age, this.sex);
    }
  }

  class child extends parent {
    constructor(name, age, sex) {
      super(name, age);
      this.sex = sex;
    }
    say1() {
      this.say();
    }
  }

  const obj = new child('张三', 23, '男');
  obj.say1(); // 输出 张三 23 男

es5 通过call 实现

  function es5parent(name, age) {
    this.name = name;
    this.age = age;
  }

  es5parent.prototype.say = function() {
    console.log(this.name, this.age, this.sex);
  }
  
  function es5child(name, age, sex) {
    this.sex = sex;
    es5parent.call(this, name, age);
  }
  
  es5child.prototype = new es5parent();
  es5child.prototype.say1 = function() {
    this.say();
  }
  const es5obj = new es5child('李四', 21, '女');
  es5obj.say1(); // 李四 21 女

 

标签:传参,function,name,父级,age,js,es5parent,es5child,sex
From: https://www.cnblogs.com/bruce-gou/p/17275760.html

相关文章

  • 全网最详细中英文ChatGPT-GPT-4示例文档-智能编写Python注释文档字符串从0到1快速入门
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-类比语句智能生成从0到1快速入门——官网推荐
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • js sdk介绍和使用
    sdk是什么sdk一般是指提供给第三方人员使用的一段js,通过这个js实现一些平台化产品提供的服务,比如微博人jssdk,整个jssdk的设计和一些核心问题:代码如何使用页面接入如何实现跨域通信如何实现优雅api的设计公共资源的使用代码组件化代码如何被使用页面接入这个问题涉及到几......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-自然语言智能获取颜色从0到1快速入门——官网
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • js入门
             ......
  • Mapboxgl draw 自定义标绘:圆、矩形、自由多边形、上传读取geojson
    还没做文字标绘,累了,以后有需要有机会再说自定义标绘方法Mapboxgl标绘相关库我当前使用的版本是:"@mapbox/mapbox-gl-draw":"^1.4.1","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","mapbox-gl-draw-circle":"^1.1.2",&quo......
  • threejs中渲染html
    背景最近中看threejs的时候发现一个好玩的事情,可以在threejs中渲染普通的html。threejs本身可以做各种炫酷的界面,但是与用户交互的时候写起来没有用dom实现方便,但是如果可以将已有的dom渲染到threejs中,那么就可以实现非常炫酷的界面,也能提高用户的体验。依赖介绍这里使用react......
  • js学习笔记
    Js语法基础== >=<= - 默认把字符型隐式转换为数值型+为字符拼接逻辑短路:(与运算):表达式1结果为真,返回表达式2表达式1为假,返回表达式1(或运算):表达式1为真,返回表......
  • fastjson很好,但不适合我
    记者:大爷您有什么特长呀?fastjson:我很快。记者:23423乘以4534等于多少?fastjson:等于2343.记者:??fastjson:你就说快不快吧!这个略显马丽苏的标题,各位看官将就着看吧。......
  • nodejs连接mysql报错:throw err; // Rethrow non-MySQL errors TypeError: Cannot re
    该问题的解决方案如下:win+R输入cmdmysql-uroot-p输入密码进入到mysql3.执行sql语句,将密码改成123456(自己可以记住的密码即可)alteruser'root'@'localhost'i......