ES6-oops-classes-inheritance

by upigilam

JavaScript

class Rectangle {
    constructor(h, w) {
        this.height = h;
        this.width = w;
    }

    static isRectangle(p) {
        return p instanceof Rectangle;
    }

    // As instance function
    getArea() {
        return this.height * this.width;
    }

    // As getter
    get area() {
        return this.height * this.width;
    }
}

class Square extends Rectangle {
    constructor(side) {
        super(side, side);
    }
}

const mySquare = new Square(5 /* side */);
Rectangle.isRectangle(mySquare); // true
console.log(mySquare.getArea()); // returns 25