Functions as Values

(see next code running here -> https://playcode.io/664865)

function Marca(nombre, modelo) {
	console.log('Carro Marca: ' + nombre + ' - Modelo: ' + modelo);
}

 //  Asignar las funciones como si fueran variables
let ferrari = Marca;
ferrari('Ferrari', 'Lamborguini');

//  Asignar las funciones como si fueran variables
let bmw = Marca;
bmw('BMW','Serie 8');


// Agregar las funciones a Objetos
let escuderias = {
  ferrari: ferrari, 
  bmw: bmw
 };

escuderias.ferrari('Ferrari','Maserati');
escuderias['bmw']('BMV','BMV i');

let i = 0;
for(let escudo in escuderias) {
  escuderias[escudo]('Marca'+i,'Modelo'+i);
  i++;
}
// pasar las funciones como argumentos
function Escuderia(marca1, marca2) {
  marca1('Tesla', 'Roadster');
  marca2('Honda', 'Type R');
}

Escuderia(ferrari, bmw);

// Regresar las funciones de otras funciones
function Indianapolis500(marca) {
  console.log('Que imprime marca?\n' + marca);
  console.log('Que longitud tiene marca? ARITY #' + marca.length);
  return marca;
}

let otraMarca = Indianapolis500(ferrari);
otraMarca('SEAT', 'IBIZA');

            var numbers = [9, 1,2,8,4,7,10,3,6,5];
            numbers.sort(function(f,s){ // funcion anonima como argumento
               return f-s; 
            });
            console.log("array ordenado: " + numbers);
        

Responses from code above

Carro Marca: Ferrari - Modelo: Lamborguini
Carro Marca: BMW - Modelo: Serie 8
Carro Marca: Ferrari - Modelo: Maserati
Carro Marca: BMV - Modelo: BMV i
Carro Marca: Marca0 - Modelo: Modelo0
Carro Marca: Marca1 - Modelo: Modelo1
Carro Marca: Tesla - Modelo: Roadster
Carro Marca: Honda - Modelo: Type R
Que imprime marca? function Marca(nombre, modelo) { console.log('Carro Marca: ' + nombre + ' - Modelo: ' + modelo); }
Que longitud tiene marca? CARDINALIDAD #2
Carro Marca: SEAT - Modelo: IBIZA
array ordenado: 1,2,3,4,5,6,7,8,9,10

References

THE PRINCIPLES OF OBJECT-ORIENTED JAVASCRIPT. Copyright © 2014 by Nicholas C. Zakas