美文网首页
2018-06-02 How to do inheritance

2018-06-02 How to do inheritance

作者: Star_C | 来源:发表于2018-06-02 15:53 被阅读0次

    JS is incredibly flexible. This is a quick recipe for OOP people.

    The old way:
    demo

    function Printer() {
      this.objectType = 'Printer'
      this.print = function print(sth) {
        console.log(sth)
      }
    }
    
    function ColorPrinter() {
      Printer.apply(this)
      this.printInRed = function print(sth) {
        console.log('IN RED: ' + sth)
      }
    }
    
    ColorPrinter.prototype = Object.create(Printer.prototype)
    ColorPrinter.prototype.constructor = ColorPrinter
    
    const colorPrinterA = new ColorPrinter()
    console.log(colorPrinterA.objectType)
    colorPrinterA.print('document 1')
    colorPrinterA.printInRed('document 2')
    
    /**
     *  you will see the following output
        Printer
        document 1
        IN RED: document 2
     */
    
    

    The modern(es6) way
    demo

    class Printer {
      constructor() {
        this.objectType = 'Printer'
      }
      print(sth) {
        console.log(sth)
      }
    }
    
    class ColorPrinter extends Printer {
      printInRed(sth) {
        console.log('IN RED: ' + sth)   
      }
    }
    
    const colorPrinterA = new ColorPrinter()
    console.log(colorPrinterA.objectType)
    colorPrinterA.print('document 1')
    colorPrinterA.printInRed('document 2')
    
    /**
     *  you will see the following output
        Printer
        document 1
        IN RED: document 2
     */
    

    相关文章

      网友评论

          本文标题:2018-06-02 How to do inheritance

          本文链接:https://www.haomeiwen.com/subject/lgyrsftx.html