Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
¿Cuándo usaría el préstamo de funciones?

El préstamo de funciones es tomar prestada la función de un objeto en lugar de redefinirla; pero ¿por qué debería hacerlo? Podemos tener una función genérica y los objetos pueden usarla más. Ser más preciso; ¿Cuándo usaría el código n. ° 1 cuando puedo codificarlo como en el código n. ° 2:

código #1

 let car1 = { speed: 80, getSpeed: function () { return this.speed; }, }; let car2 = { speed: 60, }; console.log(car1.getSpeed()); console.log(car1.getSpeed.call(car2));

código #2

 function getSpeed() { return this.speed; } let car1 = { speed: 80, } let car2 = { speed: 60, } console.log(getSpeed.call(car1)); console.log(getSpeed.call(car2));
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

El préstamo de funciones se usa cuando ya tiene un método definido para un objeto (ya sea directamente o a través de la cadena de prototipos) y desea poder usarlo con un objeto similar que no tiene ese método definido.

Este es el caso de su código n.º 1: en lugar de usar herencia o clases prototípicas, el método getSpeed() se definió directamente en car1 . En lugar de duplicar el código en car2 , puede tomarlo prestado de car1 .

Normalmente no diseñarías cosas de esta manera desde cero. O usaría una función ordinaria como en el código #2, o haría que el car2 car1 del mismo prototipo.

El préstamo de funciones suele ser solo una solución para un diseño inicial deficiente. Lo ves en código como

 nodes = document.getElementsByClassName("foo"); result = [].prototype.map.call(nodes, someFunction);

porque el prototipo NodeList no tiene su propia función map() .

about 4 years ago · Juan Pablo Isaza Relatório

0

Como complemento a la respuesta de Barmar, la tercera opción que podría considerar es usar una class para crear instancias de objetos que comparten los mismos métodos.

 class Car { constructor(speed) { this.speed = speed; } getSpeed() { return this.speed; } } console.log(new Car(80).getSpeed()); console.log(new Car(60).getSpeed());

about 4 years ago · Juan Pablo Isaza Relatório

0

Los beneficios de usar el Código n. ° 1 (préstamo de funciones) frente al Código n. ° 2 es que le permite omitir la herencia. En su ejemplo, está otorgando acceso de car1.getSpeed() a car2 .

Los beneficios son:

  1. Omitir una necesidad de herencia de clase
  2. Reduzca los errores al tener 1 copia de la función frente a las copias que flotan.

Se usa principalmente con métodos nativos como slice() de Array.prototype

Entonces, si tiene estructuras similares a una matriz (pero no exactamente), tomar prestado slice() de Array.prototype le da acceso a .map / .filter , etc.

Ejemplo práctico:

 function findS() { return Array.prototype.slice.call(arguments).filter( arg => arg.includes('s')) } console.log(findS("Tesla", "Mitsubishi", "Ford"))

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda