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

241
Vistas
¿Qué es esta estructura en javascript return({object}={})=>{more code}?

Estoy tratando de entender qué está haciendo este código, es de un nodejs. No entiendo qué está haciendo esta estructura.

return({objeto}={})=>{más código}

puede encontrar el repositorio aquí: https://github.com/howardmann/clean-node/blob/master/models/teacher/teacher.js

 let buildMakeTeacher = function(teacherValidator) { return ({ name, subject, tenure = false } = {}) => { let {error} = teacherValidator({name, subject, tenure}) if (error) throw new Error(error) return { getName: () => name, getSubject: () => subject, isTenure: () => tenure } } }

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Además de la respuesta de @Sarkar, la cantidad de llaves aquí puede sorprenderlo. El punto de otros (que no declaran un alcance) es la desestructuración de objetos . rompiendo:

 let {error} = teacherValidator({name, subject, tenure})

Esta línea toma el objeto devuelto por teacherValidator y extrae una clave llamada error de él. Si devolvió, digamos, {error: 'Fail', errorcode: 1} , entonces error se asigna a 'Fail' .

 return ({ name, subject, tenure = false } = {}) => { doSomething(); }

Esto crea una función anónima con un manejo de argumentos complejo. Es (al llamar a resultado, la implementación debe diferir) equivalente a:

 return function(params={}) { let {name, subject, tenure=false} = params; doSomething(); }

Esta función:

  • Cuando se llama sin argumentos, tiene parámetros establecidos en objeto vacío;
  • Cuando se llama con un argumento, extrae las claves de name y subject ( undefined si no está presente) y la clave de tenure ( false si falta).
  • Realiza alguna acción con estos argumentos (comprueba el error y devuelve el objeto con 3 funciones anónimas como captadores)
about 4 years ago · Juan Pablo Isaza Denunciar

0

es una funcion anonima

este

 (object)=>{more code}

es equivalente a esto

 function functionName(object){ moreCode }

su ejemplo de código es una función llamada buildMakeTeacher que devuelve una función anónima que devuelve un objeto

about 4 years ago · Juan Pablo Isaza Denunciar

0

Lea sobre el cierre y curry un poco le dará una mejor perspectiva.

Pero básicamente eso significa que esta función devuelve una nueva función que devuelve un objeto con acciones invocables.

Así que para llamarlo deberías hacer algo como buildMakeTeacher(someValidstor)({name: “foo”, subject: “bar”}).getSubject()

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