Day 5: Inheritance | 10 Days of JavaScript – Hacker Rank Solution

Day 5: Inheritance | 10 Days of JavaScript – Hacker Rank Solution: Hey Guy’s In this post we are solving Day 5: Inheritance which is a part of 10 Days of JavaScript Series.

Day 5: Inheritance | 10 Days of JavaScript – Hacker Rank Solution

Objective

In this challenge, we practice implementing inheritance and use JavaScript prototypes to add a new method to an existing prototype. Check out the attached Classes tutorial to refresh what we’ve learned about these topics.

Task

We provide the implementation for a Rectangle class in the editor. Perform the following tasks:

  1. Add an area method to Rectangle‘s prototype.
  2. Create a Square class that satisfies the following:
    • It is a subclass of Rectangle.
    • It contains a constructor and no other methods.
    • It can use the Rectangle class’ area method to print the area of a Square object.

Locked code in the editor tests the class and method implementations and prints the area values to STDOUT.

Day 5: Inheritance | 10 Days of JavaScript – Hacker Rank Solution

class Rectangle {
    constructor(w, h) {
        this.w = w;
        this.h = h;
    }
}
/*
 *  Write code that adds an 'area' method to the Rectangle class' prototype
 */
 Rectangle.prototype.area = function() {
     return (this.w * this.h);
 }
 class Square extends Rectangle {
     constructor(w){
         super(w, w);
     }
 }
/*
 * Create a Square class that inherits from Rectangle and implement its class constructor
 */
if (JSON.stringify(Object.getOwnPropertyNames(Square.prototype)) === JSON.stringify([ 'constructor' ])) {
    const rec = new Rectangle(3, 4);
    const sqr = new Square(3);
    console.log(rec.area());
    console.log(sqr.area());
} else {
    console.log(-1);
    console.log(-1);
}

Disclaimer: The above Problem (Day 5: Inheritance) is generated by Hackerrank but the Solution is Provided by Chase2Learn. This tutorial is only for Educational and Learning purposes. Authority if any of the queries regarding this post or website fill the following contact form thank you.

Leave a Comment