Course Content
Object-Oriented Programming in JavaScript
Object-Oriented Programming in JavaScript
Constructor Inheritance
If there is a constructor in the parent class, the daughter class will inherit it. Here you create square
, but use a Rectangle
constructor, so you should pass both height and width parameters.
rectangle = new Rectangle(2, 5); square = new Square(4, 4);
This is a bit inconvenient, so let's create constructor for Square
class, that will use Rectangle
constructor. To do that in daughter class, you should use super()
function to call the parent constructor first.
class Rectangle { height; width; constructor(height, width) { this.height = height; this.width = width; console.log('Rectangle created'); } } class Square extends Rectangle{ constructor(size){ super(size, size); // init other attributes if it is required console.log('Square created'); } } square = new Square(5);
This way, first you call Rectangle's constructor(height, width)
, and after define other attributes initialization. Then Square`s constructor is called. This way, first you create parent's object, and after that daughter's one.
Swipe to show code editor
To the class Square
, add attribute color
. Then create constructor with two parameters: side length and color. In its body, call Rectangle
constructor to initialize width and length, and then initialize color
.
Thanks for your feedback!
Constructor Inheritance
If there is a constructor in the parent class, the daughter class will inherit it. Here you create square
, but use a Rectangle
constructor, so you should pass both height and width parameters.
rectangle = new Rectangle(2, 5); square = new Square(4, 4);
This is a bit inconvenient, so let's create constructor for Square
class, that will use Rectangle
constructor. To do that in daughter class, you should use super()
function to call the parent constructor first.
class Rectangle { height; width; constructor(height, width) { this.height = height; this.width = width; console.log('Rectangle created'); } } class Square extends Rectangle{ constructor(size){ super(size, size); // init other attributes if it is required console.log('Square created'); } } square = new Square(5);
This way, first you call Rectangle's constructor(height, width)
, and after define other attributes initialization. Then Square`s constructor is called. This way, first you create parent's object, and after that daughter's one.
Swipe to show code editor
To the class Square
, add attribute color
. Then create constructor with two parameters: side length and color. In its body, call Rectangle
constructor to initialize width and length, and then initialize color
.
Thanks for your feedback!