• JavaScript高级__原型继承+组合继承


    原型继承

    1.定义父类型构造函数

    2.给父类型的原型添加方法

    3.定义子类型的构造函数

    4.创建父类型的对象赋值给子类型的原型(关键)

    5.将子类型原型的构造属性设置为子类型

    6.给子类型原型添加方法

    7.创建子类型的对象:可以调用父类型的方法

    // 父类型
    function Supper() {
      this.supProp = 'Supper property'
    }
    Supper.prototype.showSupperProp = function() {
      console.log(this.supProp)
    }
    // 子类型
    function Sub() {
      this.subProp = 'Sub property'
    }
    // 子类型的原型为父类型的一个实例对象
    Sub.prototype = new Supper()
    // 让子类型的原型的constructor指向子类型
    Sub.prototype.constructor = Sub
    Sub.prototype.showSubProp = function() {
      console.log(this.subProp)
    }
    
    var sub = new Sub()
    sub.showSupperProp() // Supper property
    sub.showSubProp() // Sub property

    组合继承

    1.利用原型链实现对父类型对象的方法继承

    2.利用call()借用父类型构建函数初始化相同的属性

    function Person(name, age) {
      this.name = name
      this.age = age
    }
    
    Person.prototype.setName = function(name) {
      this.name = name
    }
    
    function Student(name, age, price) {
      Person.call(this, name, age) // 为了得到属性
      this.price = price
    }
    Student.prototype = new Person() // 为了能看到父类型的方法
    Student.prototype.constructor = Student // 修正constructor属性
    Student.prototype.setPrice = function (price) {
      this.price = price
    }
    
    var s = new Student('tom', 22, 15)
    s.setName('bob')
    s.setPrice(16)
    console.log(s.name, s.age, s.price) // bob 22 16
  • 相关阅读:
    清北学堂 清北-Day1-R1-Count
    清北学堂 清北-Day1-R2-监听monitor
    LuoGu P2420 让我们异或吧
    Milk(sort+结构体)
    开门人和关门人(结构体+sort)
    python-神奇的下划线
    python-pathlib
    python-文本字符串
    python-闭包
    进制-Iterative-进制转换
  • 原文地址:https://www.cnblogs.com/bobo1/p/14736546.html
Copyright © 2020-2023  润新知