Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

178
Vistas
¿Cómo vinculo un método de objeto a su contexto si el método de objeto se pasa a una función como argumento?

Tengo un objeto con un método que quiero pasar a una función especial. El trabajo de esta función especial es llamar a la función pasada como argumento y también guardar todos los argumentos pasados a la función ejecutada/devuelta/llamada a una variable externa.

 const playerPerformance = { goals: 18, assists: 19, total(penalties, tackles) { return this.goals + this.assists + penalties + tackles; }, }; const calls = []; function saveCalls(func) { return withMemory = (...rest) => { calls.push(rest); return func(...rest); }; }; const tester = saveCalls(playerPerformance.total);

El problema es que no se como guardar el contexto de la función pasada. Debe hacerse dentro de la función saveCalls , no como este const tester = saveCalls(playerPerformance.total.bind(playerPerformance); . Traté de aplicar los métodos bind(), call(), apply() dentro saveCalls pero esto no funciona Por aquí.

El resultado actual:

 tester(2,1) // NaN

...lo cual es comprensible ya que pierdo un contexto y obtengo undefined + undefined + 2 + 1

El resultado deseado después de este cambio de código:

 tester(2,1) // 40
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Simplemente haga una función contenedora, que haga que this argumento sea correcto para total . El método bind está diseñado para esto:

 const tester = saveCalls(playerPerformance.total.bind(playerPerformance));
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda