Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

174
Views
Javascript es una mala práctica devolver un objeto que se pasa por referencia

Digamos que tengo esta función en JavaScript:

 function foo(a) { a.item = "four" return a } b = { item: "three" } b = foo(b) console.log(b)

Dado que JavaScript es un lenguaje de llamada compartida, no es necesario return a , el objeto b tendría el mismo valor final con el siguiente código:

 function foo(a) { a.item = "four" return a } b = { item: "three" } foo(b) console.log(b)

¿Es una mala práctica usar return b para una mejor legibilidad aunque no sea necesario?

¿Hay algún inconveniente en devolver el objeto?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Tiene razón, en su ejemplo, la declaración de devolución es innecesaria, estrictamente hablando. Además, solo como punto de aclaración, mientras JS pasa objetos por referencia, los tipos primitivos se pasan por valor.

Sin embargo, se considera una mejor práctica de JS para evitar la mutación de los parámetros de la función. Puede volverse muy confuso rápidamente cuando tiene muchas funciones que realizan acciones en el mismo objeto que se pasa y muta. Entonces, de hecho, consideraría una mala práctica escribir una función de mutación que no implique devolver un valor.

Siguiendo esa idea, su ejemplo se vería así:

 function foo(a) { // Copy our input (assuming 'a' only contains primitive values) const output = { ...a }; output.item = 'four'; return output; } const b = { item: 'three' }; const c = foo(b); // b is unchanged
about 4 years ago · Juan Pablo Isaza Report

0

El método integrado Array.prototype.sort() devuelve la matriz aunque la esté ordenando en su lugar.

Si esto proporciona una mejor legibilidad es una cuestión de preferencia personal. Pero puede facilitar el trabajo con matrices/objetos que se crean sobre la marcha, por ejemplo

 sorted_words = string.split(" ").sort();

Si no devolviera la matriz, tendría que hacer esto en dos pasos:

 sorted_words = string.split(" ") sorted_words.sort();
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!