(veuillez noter que ceci n'est pas une question en double, voir la réponse de @Jeff M ci-dessous)Comment utiliser la composition avec les classes es6 de la même manière que cet exemple utilise les fonctions d'usine?
J'essaie de comprendre la syntaxe de la classe es6. Je veux composer mes cours de la même manière que ce code n'utilisant les fonctions d'usine:
Exemple 1:
const barker = (state) => ({
bark:() => console.log("Woof, I am " + state.name)
});
const driver = (state) => ({
drive:() => state.position = state.position + state.speed
});
const murderRobotDog = (name) => {
let state = {
name,
speed: 100,
position: 0
};
return Object.assign({},
barker(state),
driver(state)
);
};
const bruno = murderRobotDog("bruno");
bruno.bark(); // "Woof, I am Bruno"
Mon exemple de travail de composition de classe en utilisant la « classe » d'un tutoriel complètement différent se présente comme suit :
Exemple 2:
class Employee {
constructor(firstName, familyName) {
this._firstName = firstName;
this._familyName = familyName;
}
getFullName() {
return `${this._firstName} ${this._familyName}`;
}
}
class Group {
constructor(manager /* : Employee */) {
this._manager = manager;
this._managedEmployees = [];
}
addEmployee(employee) {
this._managedEmployees.push(employee);
}
}
Je peux voir comment le concept de composition fonctionne, mais ceux-ci semblent comme façons très différentes de le faire. Le premier exemple utilisant les usines semble le plus intuitif, mais je veux utiliser la syntaxe de classe es6 (ne vous inquiétez pas pourquoi :)
Peut-être qu'il me manque quelque chose et la réponse est évidente, mais comment ferais-je exactement quoi est fait dans l'exemple 1 en utilisant les classes es6 de la manière la plus simpliste? MERCI.
double possible de [ES6 classe héritage multiple] (https://stackoverflow.com/questions/29879267/es6-class-multiple-inheritance) – lilezek