javascript继承(call方法)机制的两种实现

  1. 内部实现:
    function ClassA(sColor) {
    this.color = sColor
    this.sayColor = function () {
        console.log(this.color)
    }
    }
    function ClassB(sName) {
    this.name = sName
    this.sayName = function () {
        console.log(this.name)
    }
    }
    function ClassC(sColor, sName) {
    ClassA.call(this,sColor)
    ClassB.call(this,sName)
    }
    var objA = new ClassA("blue")
    var objC = new ClassC("red", "John")
    objA.sayColor()
    objC.sayColor()
    objC.sayName()
  2. 外部实现:
    function ClassA(sColor) {
    this.color = sColor
    this.sayColor = function () {
        console.log(this.color)
    }
    }
    function ClassB(sName) {
    this.name = sName
    this.sayName = function () {
        console.log(this.name)
    }
    }
    function ClassC(sColor, sName) {
    }
    var objA = new ClassA("blue")
    var objC = new ClassC()
    ClassA.call(objC,'red')
    ClassB.call(objC,'John')
    objA.sayColor()
    objC.sayColor()
    objC.sayName()
  3. 输出:
    blue
    red
    John

网页名称:javascript继承(call方法)机制的两种实现
网页链接:http://azwzsj.com/article/jpidpd.html