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

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

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

  • 相关阅读:
    Python数据挖掘—回归—一元非线性回归
    Python数据挖掘—回归—线性回归
    Python 线程 进程 协程
    Python 异常处理
    Python Socket
    python mysql
    Python 面向对象
    Python 正则表达式
    Python 算法
    python 迭代器 生成器 装饰器
  • 原文地址:https://www.cnblogs.com/psxiao/p/11370873.html
Copyright © 2011-2022 走看看