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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法)机制的两种实现的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript继承方式详解

JavaScript 继承方式详解

创建线程的两种方法

JavaScript继承方式详解

javascript实现继承方法

昼猫笔记 JavaScript -- 面向对象(II)- 继承