js 继承的是什么?如何实现继承?

r囧r小猫 2023-02-13 11:45 10阅读 0赞

继承的含义:

继承是面向对象编程中的一个重要概念,通过继承可以使子类的实例使用在父类中定义的属性和方法。

继承的实现:

组合继承:

  1. function ClassDemo(value){
  2. this.value = value
  3. }
  4. ClassDemo.prototype.test = function(){
  5. console.log(this.value)
  6. }
  7. function ClassExtends (value){
  8. ClassDemo.call(this,value)
  9. }
  10. ClassExtends.prototype = new ClassDemo()
  11. //测试
  12. var demo = new ClassExtends("我是测试语句")
  13. demo.test(); //我是测试语句
  14. console.log(demo.__proto__)

这种继承方式有个缺点就是在继承父类函数的时候调用了父类构造函数,导致子类的原型上多了不需要的父类属性,存在内存上的浪费。

寄生组合继承:

  1. function ClassDemo(value){
  2. this.value = value
  3. }
  4. ClassDemo.prototype.test = function(){
  5. console.log(this.value)
  6. }
  7. function ClassExtends (value){
  8. ClassDemo.call(this,value)
  9. }
  10. ClassExtends.prototype = Object.create(ClassDemo.prototype)
  11. ClassExtends.prototype.constructor = ClassExtends
  12. //测试
  13. var demo = new ClassExtends("我是测试语句")
  14. demo.test(); //我是测试语句
  15. console.log(demo.__proto__)

Class继承:

  1. class ClassDemo{
  2. constructor(value){
  3. this.value = value
  4. }
  5. test(){
  6. console.log(this.value)
  7. }
  8. }
  9. class ClassExtends extends ClassDemo{
  10. constructor(value){
  11. super(value) //子类构造函数中必须调用 super
  12. }
  13. }
  14. //测试
  15. var demo = new ClassExtends("我是测试语句")
  16. demo.test(); //我是测试语句
  17. console.log(demo.__proto__)

发表评论

表情:
评论列表 (有 0 条评论,10人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python中继承什么

    在Python中,继承是面向对象编程的一个重要概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。继承使得子类可以重用父类的代码,并且可以在不修改

    相关 Java中继承什么?

    Java中的继承是一种面向对象编程中的重要概念,它允许一个类继承另一个已经存在的类的属性和方法。基于继承的思想,子类(派生类)可以拥有父类(基类)的所有非私有属性和方法,通过继

    相关 JS实现继承方式

    我的理解:继承通俗地讲就是子代拥有了父代的比如:地位,金钱,房产等等。在js中,继承就是让一个对象拥有另一个对象的属性和方法。下面就来谈谈怎样实现继承。 1. 原型链继承

    相关 【面试题】什么继承

    继承是面向对象中的一个非常中要的的特性。通过继承,子类可以使用父类中的一些成员变量与方法,从而能够提高代码的复用性,提高开发效率。在Java语言中,被继承的类叫基类(super