美文网首页
ES5的继承 --- 构造函数的继承

ES5的继承 --- 构造函数的继承

作者: 彬彬彬boboc | 来源:发表于2019-04-28 14:36 被阅读0次

ES5的继承

构造函数的继承

基本思想:在子类型构造函数的内部调用超类型构造函数,通过使用apply()和call()方法可以在将来新创建的对象上执行构造函数

// 构造函数
   // 构造函数
   function Person(name, sex) {
       this.name = name;
       this.sex = sex;
       this.niam= "草拟吗"
       this.run=function(){
        console.log(this.name+"在奔跑")
       }
   }
   // 定义Person的原型,原型中的属性可以被自定义对象引用
   Person.prototype = {
       getName: function() {
           return this.name;
       },
       getSex: function() {
           return this.sex;
       }
   }
   // Subperson.prototype = new Person()
   function Subperson(name, sex, color){
        Person.call(this, name, sex)
        this.color = color
        this.niam= "你阿妈"
        this.jump=function(){
            console.log(this.name+"---"+this.color+"还活蹦乱跳")
        }
   }

    let sub = new Subperson("小李","男","黑色的");
    //console.log(sub.getName()) //这里会报错 sub.getName is not a function
    sub.run()
    sub.jump()

$ node es5继承.js

ZhangSan在奔跑
ZhangSan---黄色的还活蹦乱跳
ChunHua在奔跑
ChunHua---白色的还活蹦乱跳
小李在奔跑
小李---黑色的还活蹦乱跳

继承父类后,子类无法使用父类原型上的方法( getName ),只能使用父类构造函数里的方法(run)

通过call或者apply方法,我们实际上是在将来新创建的SubType实例的环境下调用了SuperType构造函数。这样一来,就会在新SubType对象上执行SuperType函数中定义的所有对象初始化代码,因此,每一个SubType的实例都会有自己的colors对象的副本

  • 优点
    • 传递参数
  • 缺点:
    • 方法都在构造函数中定义,函数无法复用

    • 在超类型中定义的方法,子类型不可见,结果所有类型都只能使用构造函数模式

相关文章

  • ES5 和 ES6 继承比较:

    ES5构造函数和继承: ES6构造函数和继承:

  • ES5和ES6中继承的不同之处

    1、JS中是没有继承的,不过可以通过构造函数或是原型等实现继承,ES5实现继承的方法——构造函数,当一个构造函数加...

  • ES5的继承 --- 构造函数的继承

    ES5的继承 构造函数的继承 基本思想:在子类型构造函数的内部调用超类型构造函数,通过使用apply()和call...

  • ES6学习(8)原生继承

    在es5中要实现继承,需要两个关键步骤:①去继承构造函数中的成员,②去继承原型对象上的成员。 对于去继承构造函数中...

  • 继承

    ES5的继承 1、构造函数实现继承 其基本思想为:在子类型的构造函数中调用超类型构造函数。 优点:1.可以向超类传...

  • ES5和ES6中继承的不同之处

    ES5和ES6中继承的不同之处 1、JS中视没有继承的,不过可以通过构造函数或是原型等实现继承,ES5实现继承的方...

  • 构造函数相关笔记

    es5环境下写构造函数 继承 es6环境下的构造函数 继承 class的set和get clsss的静态方法

  • ES的类与继承

    ES5中的类与继承 构造函数继承,原型继承,组合式继承 静态方法,静态属性,实例方法,实例属性 ES6中的类与继承...

  • 继承

    es5 的三种继承方式 一、构造函数继承( 缺点是:原型上的方法或者属性,无法继承) 二、 原型继承共用一个原型...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

网友评论

      本文标题:ES5的继承 --- 构造函数的继承

      本文链接:https://www.haomeiwen.com/subject/ididnqtx.html