zoukankan      html  css  js  c++  java
  • 借用构造函数的问题

    function SuperType(name){
      this.name = name;
      this.age = 28
    }

    SuperType.prototype.say="english"
    function SubType(){
        //实例属性
      this.age = 29
    this.ab = 31
      //继承了SuperType,同时还传递了参数
      SuperType.call(this,"Nicholas")
    console.log(this.ab)//31
     
    }

    var instance = new SubType();
    console.log(instance.name);//Nicholas
    console.log(instance.age);//28
    console.log(instance.ab);//31

    console.log(instance.say);//undefined
    解释:subType构造函数体内的this指向了SuperType,即SubType将继承SuperType内的所有方法和属性,并且会重写SubType内相同的属性和方法,

    所以,为了确保SuperType构造函数不会重写子类型的属性,可以再调用超类型构造函数后,再添加应该再子类型中定义的属性。

    而且,在超类型的原型中定义的方法属性,对子类型而言都是不可见的,结果所有类型都只能使用构造函数模式

    通过下面的代码会更加容易理解

  • 相关阅读:
    第七周总结
    第六周编程总结
    第五周编程总结
    选择加冒泡排序法与找鞍马之总结与感受
    上三角矩阵与数组中元素之和最大
    文件的读写
    打印沙漏
    第八周作业
    第七周作业
    第六周作业
  • 原文地址:https://www.cnblogs.com/psxiao/p/11370873.html
Copyright © 2011-2022 走看看