• 借用构造函数的问题


    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构造函数不会重写子类型的属性,可以再调用超类型构造函数后,再添加应该再子类型中定义的属性。

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

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

  • 相关阅读:
    进程状态-top,ps
    怎么杀死进程?
    linux文件属性和类型
    文件管理的相关命令
    系统的目录结构
    linux基础_02
    linux基础_01
    python 01
    什么是NoSql
    为何不推荐子查询和join?
  • 原文地址:https://www.cnblogs.com/psxiao/p/11370873.html
Copyright © 2020-2023  润新知