我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JS继承实现方式有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JS继承实现方式有哪些

这篇文章主要介绍“JS继承实现方式有哪些”,在日常操作中,相信很多人在JS继承实现方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS继承实现方式有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  什么是继承?

  继承就是让一个类型(可以通过构造函数或者class来定义)的对象能够访问另外一个类型的属性和方法,它是类和类之间的一种关系,通常说子类继承父类。但这里容易出现一个误区:认为实例继承了某个类,某人有响应的属性和方法是因为他继承人类,这种说法是错误。

  实现继承的方式有很多种,小编给大家分享四种:借助构造函数实现继承、原型继承、组合继承、ES6继承。

  1、借助构造函数实现继承

  function Person(name,age){ //定义了一个父类

  this.name = name;

  this.age = age;

  this.sayHello = function(){

  console.log(this.name);

  }

  }

  function Male(name,age){ //定义了一个子类 男性类

  //继承父类,让子类具有相应的属性和方法

  //call或者apply的用法

  //构造函数里的this指向实例

  Person.call(this,name,age);

  this.hx = "true";//除了继承过来的属性和方法,还能添加针对于子类自身的属性和方法

  }

  function FeMale(name,age){ //定义了一个子类 女性类

  Person.call(this,name,age);

  this.hj = "no";

  }

  var male = new Male("chenjinfeng",20);

  male.sayHello();

  2、原型继承

  function Person(){

  }

  Person.prototype.name = "john";

  Person.prototype.age = 20;

  Person.prototype.sayHello = function(){

  console.log(this.name);

  }

  function Male(){

  }

  Male.prototype = new Person();//Male.prototype.__proto__ == Person.prototype 通过这行代码就实现继承

  //查找流程 male的__proto__(Male.prototype)上面有没有sayHello,

  //如果没有继续查找 male.__proto__.__proto__(Male.prototype.__proto__) 就是查找 Person.prototype

  var male = new Male();

  male.sayHello();

  3、组合继承

  function Person(name,age){

  this.name = name;

  this.age = age;

  }

  Person.prototype.sayHello = function(){

  console.log(this.name);

  }

  function Male(name,age){

  Person.call(this,name,age);//只能继承实例属性

  }

  //只考虑继承原型方法 是不是就可以了 让Male的原型对象也有Person原型对象上的方法

  

  for(let attr in Person.prototype){

  Male.prototype[attr] = Person.prototype[attr];

  }

  Male.prototype.sayHi = function(){

  console.log("hi");

  }

  var male = new Male("john",20);

  male.sayHello();

  male.sayHi();

  var person = new Person("aa",22);

  person.sayHi();

  4、ES6继承

  class Person{

  constructor(name,age){

  this.name = name;

  this.age = age;

  }

  sayHello(){

  console.log(this.name);

  }

  //扩展,定义类方法

  static foo(){

  console.log("这是类方法,不是实例方法");

  }

  }

  //通过extends这个关键字实现继承

  class Male extends Person{

  constructor(name,age){

  super(name,age);//1.创建this对象2.super指向父类的构造函数

  this.sexy = "男";//添加子类的实例属性

  }

  //在子类的原型方法里使用了父类的原型方法

  sayHi(){

  console.log("hi");

  super.sayHello();//super指向谁?指向父类的原型对象

  }

  static foo1(){

  super.foo(); //super指向父类

  }

  }

  var male = new Male("john",20);

  //male.sayHello();

  male.sayHi();

  Male.foo1();

到此,关于“JS继承实现方式有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JS继承实现方式有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

js继承的方式有哪些

这篇文章主要介绍js继承的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!原型链继承原型链继承是ECMAScript的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。什么是原型链?每个构造函
2023-06-14

es5实现继承的方式有哪些

在 ES5 中,可以通过以下方式实现继承:1. 使用原型链继承:将父类的实例作为子类的原型。这样子类就可以继承父类的属性和方法。示例代码如下:```javascriptfunction Parent() {this.name = 'Pare
2023-08-08

javascript继承实现的方式有哪些

本文小编为大家详细介绍“javascript继承实现的方式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript继承实现的方式有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是继承用官
2023-07-05

java实现继承的方式有哪些

在Java中,实现继承的方式有以下几种:1. 类继承(单继承):一个子类只能继承一个父类。例如:class SubClass extends SuperClass2. 接口继承(多继承):一个子类可以实现多个接口。例如:class SubC
2023-10-18

C++中有哪些实现继承的方式

C++中有哪些实现继承的方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++继承方式1.普通继承+父类无virtual函数若子类没有新定义virtual函数
2023-06-17

C++ 中的继承方式有哪些

C++ 中的继承方式有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。public 方式继承基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有
2023-06-06

c++继承的实现方式有哪几种

在C++中,有三种继承的实现方式:公有继承、私有继承和保护继承。公有继承:公有继承是最常用的继承方式。使用关键字"public"来声明继承关系,基类中的公有成员在派生类中仍然是公有成员。派生类可以访问基类中的公有成员,但无法访问基类中的私
2023-10-26

java实现多继承的方法有哪些

在Java中,一个类只能直接继承一个父类,因此无法直接实现多继承。不过,可以通过以下几种方式来模拟多继承的效果:1. 接口继承:类可以实现多个接口,每个接口可以定义一组方法。通过实现多个接口,可以达到类似于多继承的效果。```javaint
2023-10-11

c++继承的方式有哪些几种

C++中有以下几种继承的方式:公有继承(public inheritance):使用public关键字来指定基类和派生类之间的关系。在公有继承中,基类的公有成员在派生类中仍然是公有的,私有成员在派生类中是不可访问的。私有继承(private
c++继承的方式有哪些几种
2024-02-29

编程热搜

目录