¿Cuál es un buen ejemplo de composición en JavaScript (JS)?

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”);
};

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