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
*/
网友评论