zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    白话https
    网络分层体系结构
    软件度量
    【Java】itext根据模板生成pdf(包括图片和表格)
    【java】Freemarker 动态生成word(带图片表格)
    压力测试-接口关联
    压力测试-录制脚本
    jmeter性能测试2:基础功能介绍
    jmeter性能测试1:目录解析
    桃花运
  • 原文地址:https://www.cnblogs.com/bobo1/p/14736546.html
Copyright © 2011-2022 走看看