美文网首页
2018-11-18 js原型继承

2018-11-18 js原型继承

作者: 大妈_b059 | 来源:发表于2018-11-18 22:41 被阅读0次
    /**
     * 采用中间函数实现JS_原型继承
     */
    
    function Student (params) {
      this.name = params.name || 'unnamed'
    }
    
    function PrimaryStudent (params) {
      Student.call(this, params)
      this.age = params.age || 0
    }
    
    // 空函数F
    
    function F () {
    }
    
    // 把F函数的原型对象指向Student的原型对象
    F.prototype = Student.prototype
    
    // 把PrimaryStudent的原型对象指向F对象
    PrimaryStudent.prototype = new F()
    
    // 把PrimaryStudent 的构造函数修复为PrimaryStudent
    PrimaryStudent.prototype.constuctor = PrimaryStudent
    
    // 继续绑定方法到PrimaryStudent的原型对象上
    PrimaryStudent.prototype.getAge = function () {
      return this.age
    }
    
    var LiuHuiLi = new PrimaryStudent({
      name: 'LiuHuiLi',
      age: 23
    })
    
    console.log(LiuHuiLi.name)
    console.log(LiuHuiLi.age)
    
    // 验证继承
    console.log(LiuHuiLi instanceof PrimaryStudent)// true
    
    console.log(LiuHuiLi instanceof Student) // true
    
    // 你也可以使用函数将其封装起来,这样方便更多对象实现继承使用
    function inherits (Child, Parent) {
      var F = function () {}
      F.prototype = Parent.prototype
      Child.prototype = new F()
      Child.prototype.constuctor = Child
    }
    

    相关文章

      网友评论

          本文标题:2018-11-18 js原型继承

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