'Inheriting functions from JavaScript
const startGame = {
time : 0,
start : function(){
}
next : function(){
}
end : function(){
}
}
const anotherGame = { //want to inherit from startGame
startAnother : function(){} //want to inherit from startGame.start
}
Given an object like this, I would like to inherit from it and give it a new property. For example, anotherGame extends startGame and takes all other properties, but I want to write additional code in addition to the properties of start function of startGame except for anotherStart function. What should I do ?
Solution 1:[1]
Under the hood, ES6 classes use prototype to achieve inheritance:
const startGame = {
time: 0,
start: function () {
console.log("works", this.time);
},
next: function () {},
end: function () {},
};
const anotherGame = {
//want to inherit from startGame
startAnother: function () {
this.start();
}, //want to inherit from startGame.start
};
// Magic happens here
Object.setPrototypeOf(anotherGame, startGame);
anotherGame.startAnother();
Using ES6 classes:
class StartGame {
time = 0;
start() {
console.log("works", this.time);
}
next() {}
end() {}
}
class AnotherGame extends StartGame {
startAnother() {
this.start();
}
}
const anotherGame = new AnotherGame();
anotherGame.startAnother();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | lex |
