-
-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy path9-inherits.js
More file actions
33 lines (24 loc) · 723 Bytes
/
9-inherits.js
File metadata and controls
33 lines (24 loc) · 723 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'use strict';
function Rect(x, y, width, height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
Rect.prototype.toString = function() {
return `[${this.x}, ${this.y}, ${this.width}, ${this.height}]`;
};
function Square(x, y, side) {
Rect.call(this, x, y, side, side);
}
Object.setPrototypeOf(Square.prototype, Rect.prototype);
// const util = require('util');
// util.inherits(Square, Rect); // for Node.js
// Square.prototype = Object.create(Rect.prototype);
// Square.prototype.constructor = Square;
// Square.prototype = new Rect();
// Square.prototype.constructor = Square;
const p1 = new Square(10, 20, 50);
console.log(p1);
console.log(p1.toString());
console.log(`${p1}`);