Aquí hay un automóvil con asientos con calefacción (y, obviamente, un motor):
función Motor () {}
Engine.prototype.start = function () {
console.log (“arranque del motor”);
};
- ¿Cómo dominar Javascript y AngularJS?
- ¿Cuál es el mejor generador de XML Sitemap para MacOSX?
- ¿Cuáles son algunos ejemplos de desarrollo de mercado?
- ¿Sería costoso hacer y operar un sitio web como Rightmoves?
- ¿Cómo encontrar la motivación para ser un desarrollador web full stack? ¿Puede aconsejarme sobre alguna recomendación o ruta de aprendizaje?
función Asientos () {}
Seats.prototype.heat = function () {
console.log (“¡los asientos se están calentando!”);
};
función Car () {
this.engine = nuevo motor ();
this.seats = nuevos asientos ();
}
Car.prototype.start = function () {
this.engine.start ();
this.seats.heat ();
}
var car = nuevo Car ();
car.start ();
// arranca el motor
// ¡los asientos se están calentando!
También hay otra cosa que a veces se llama composición:
función mixin (objetivo, mixins) {
para (var i = 0; i <mixins.length; i ++) {
para (clave var en mixins [i]) {
if (target.prototype [key]) {
lanzar un nuevo error (“Propiedad” + clave + “ya existe”);
}
target.prototype [clave] = mixins [i] [clave];
}
}
}
var DrawableMixin = {
dibujar: función () {
console.log (“imagina algo” + this.color);
}
}
var DrivableMixin = {
unidad: función () {
console.log (“hace” + this.bhp + “¡los caballos van!”)
}
}
función Car () {
this.color = “azul”;
this.bhp = 200;
}
mixin (Car, [DrawableMixin, DrivableMixin]);
var car = nuevo Car ();
car.draw ();
car.drive ();
// imagina algo azul
// ¡hace 200 caballos!
Y luego también está la composición de funciones:
función componer (g, f) {
retorno n => g (f (n));
}
var fn = componer (n => n * 2, n => n + 2);
console.log (fn (3));
// 10