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 } Dado un objeto como este, me gustaría heredar de él y darle una nueva propiedad. Por ejemplo, anotherGame extiende startGame y toma todas las demás propiedades, pero quiero escribir código adicional además de las propiedades de la función de start de startGame excepto para la función anotherStart . Qué tengo que hacer ?
Debajo del capó, las clases de ES6 usan prototipos para lograr la herencia:
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();Usando clases de ES6:
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();