返回顶部
首页 > 问答 > 前段 > JavaScript 中的继承有哪些方式?
0
待解决

JavaScript 中的继承有哪些方式?

  • 匿名发布
  • 2023-05-09
  • 发布在 问答/前段
526

其他回答1

一张白纸-°

2023-06-14

在JavaScript中,继承有以下几种方式:

  1. 原型链继承

原型链继承是利用原型链来实现的,实现方式如下:

function Parent() {
  this.name = "parent";
}

Parent.prototype.getName = function() {
  return this.name;
}

function Child() {
  this.age = 18;
}

Child.prototype = new Parent();

const child = new Child();
console.log(child.getName()); // 输出:parent
  1. 构造函数继承

构造函数继承是通过在子类构造函数中调用父类构造函数来实现的,实现方式如下:

function Parent(name) {
  this.name = name;
}

Parent.prototype.getName = function() {
  return this.name;
}

function Child(name, age) {
  Parent.call(this, name);
  this.age = age;
}

const child = new Child("child", 18);
console.log(child.getName()); // 报错:child.getName is not a function
  1. 组合继承

组合继承是将原型链继承和构造函数继承结合起来,实现方式如下:

function Parent(name) {
  this.name = name;
}

Parent.prototype.getName = function() {
  return this.name;
}

function Child(name, age) {
  Parent.call(this, name);
  this.age = age;
}

Child.prototype = new Parent();
Child.prototype.constructor = Child;

const child = new Child("child", 18);
console.log(child.getName()); // 输出:child
  1. 原型式继承

原型式继承是通过复制一个对象来实现继承,实现方式如下:

const parent = {
  name: "parent",
  getName: function() {
    return this.name;
  }
}

const child = Object.create(parent, {
  age: {
    value: 18
  }
});

console.log(child.getName()); // 输出:parent
  1. 寄生式继承

寄生式继承是在原型式继承的基础上添加一个包装函数,实现方式如下:

const parent = {
  name: "parent",
  getName: function() {
    return this.name;
  }
}

function createChild(parent, age) {
  const child = Object.create(parent, {
    age: {
      value: age
    }
  });
  child.getName = function() {
    return `${parent.getName()} ${this.age}`;
  }
  return child;
}

const child = createChild(parent, 18);
console.log(child.getName()); // 输出:parent 18
相关问题
2

回答

99+

浏览

2

回答

99+

浏览

2

回答

99+

浏览

2

回答

99+

浏览

2

回答

99+

浏览

相关文章
  • JavaScript中有哪些继承方式
    这期内容当中小编将会给大家带来有关JavaScript中有哪些继承方式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。原型链首先得要明白什么是原型链,在一篇文章看懂prot...
    99+
    标签:
  • JavaScript中的继承方式有哪些
    这篇文章将为大家详细讲解有关JavaScript中的继承方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。类式继承(构造函数)JS中其实是没有类的概念的,所谓的类也...
    99+
    标签:
  • javascript的继承方式有哪些
    这篇文章主要讲解了“javascript的继承方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript的继承方式有哪些”吧! ...
    99+
    标签:
  • javascript继承实现的方式有哪些
    本文小编为大家详细介绍“javascript继承实现的方式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript继承实现的方式有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是继承用官...
    99+
    标签:
  • javascript中有哪些继承形式
    本篇文章为大家展示了javascript中有哪些继承形式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Js的继承大体上就是两种:对象冒充、原型方式。这两种方式各有优点和缺陷,这里我先列举出来,再从底...
    99+
    标签:
  • JavaScript中的继承模式有哪些
    JavaScript中的继承模式有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一. 原型链继承所谓原型链继承,就是让父类的一个实例作为子...
    99+
    标签:
  • JavaScript中有哪些继承的方法
    这篇文章将为大家详细讲解有关JavaScript中有哪些继承的方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 什么是继承继承: 首先继承是一种关系,类(class)与类之间的关系,J...
    99+
    标签:
  • C++ 中的继承方式有哪些
    C++ 中的继承方式有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。public 方式继承基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有...
    99+
    标签:
  • javascript继承的方法有哪些
    这篇文章将为大家详细讲解有关javascript继承的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript继承的6种方法:1、原型链继承,其重点是让新实例的原型等于父类的实例;2、...
    99+
    标签:
  • js继承的方式有哪些
    这篇文章主要介绍js继承的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!原型链继承原型链继承是ECMAScript的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。什么是原型链每个构造函数...
    99+
    标签:
  • JavaScript中有哪些继承的实现方法
    JavaScript中有哪些继承的实现方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript继承的实现方法:1、利用构造原型模...
    99+
    标签:
  • C++中有哪些实现继承的方式
    C++中有哪些实现继承的方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++继承方式1.普通继承+父类无virtual函数若子类没有新定义virtual函数...
    99+
    标签:
  • javascript实现继承的方法有哪些
    本篇内容介绍了“javascript实现继承的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ja...
    99+
    标签:
  • java实现继承的方式有哪些
    在Java中,实现继承的方式有以下几种:1. 类继承(单继承):一个子类只能继承一个父类。例如:class SubClass ext...
    99+
    标签:
    java
  • es5实现继承的方式有哪些
    在 ES5 中,可以通过以下方式实现继承:1. 使用原型链继承:将父类的实例作为子类的原型。这样子类就可以继承父类的属性和方法。示例...
    99+
    标签:
    es5
  • JS继承实现方式有哪些
    这篇文章主要介绍“JS继承实现方式有哪些”,在日常操作中,相信很多人在JS继承实现方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS继承实现方式有哪些”的疑惑有所帮...
    99+
    标签:
  • C++中的继承模式有哪些
    这篇文章主要介绍了C++中的继承模式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言继承是OOP设计中的重要概念。在C++语言中,派生类继承基类有三种继承方式:私有继...
    99+
    标签:
  • css中有哪些继承样式
    这篇文章将为大家详细讲解有关css中有哪些继承样式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 css继承样式有:visibi...
    99+
    标签:
  • JavaScript中继承的优缺点有哪些
    这篇文章给大家分享的是有关JavaScript中继承的优缺点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文讲解JavaScript各种继承方式和优缺点。但是注意:这篇文...
    99+
    标签:
  • js中继承方法有哪些
    这篇文章主要为大家展示了“js中继承方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中继承方法有哪些”这篇文章吧。js的原型继承 --  ...
    99+
    标签:
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作