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

300
Views
Explícame la devolución de llamada y cómo se refiere a la matriz en el código

No entiendo qué es la devolución de llamada en este ejemplo, especialmente la línea newArray.push(callback(this[i])); tal como lo obtuve (este [i]) es un elemento de Array, pero ¿cómo se refiere CALLBACK al código?

 const s = [23, 65, 98, 5]; Array.prototype.myMap = function(callback) { const newArray = []; for(let i=0;i<this.length;i++){ newArray.push(callback(this[i])); } return newArray; }; const new_s = s.myMap(function(item) { return item * 2; }); console.log(new_s);
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

1. Conceptos de fondo

En primer lugar, esta parte superior es solo una definición de función donde 'devolución de llamada' es solo un parámetro que myMap puede aceptar. La palabra 'devolución de llamada' no es especial y, de hecho, puede usar cualquier nombre, pero 'devolución de llamada' indica que en la definición de su función le está pidiendo a la persona que llama que proporcione una función en lugar de un número entero o una cadena. Es decir, también podrías escribir algo como esto:

 Array.prototype.myMap = function(param) { // you can console.log(param) and you would see the parameter in log. }

Y en teoría, podría llamar a esta función haciendo:

 s.myMap(1) // the log will show 1 s.myMap("hello") // the log will show "hello" s.myMap(function() {}) // the log will show [Parameter is a Function]

En segundo lugar, si nombra su parámetro 'devolución de llamada', le indica a la persona que llama que, de hecho, podría pasar una función a este myMap, no solo un número entero o una cadena, por lo que cuando escribe algo como esto:

 Array.prototype.myMap = function(callback_f) { callback_f(); // <----- call the incoming function passed as a param }

Luego, la persona que llama tiene la idea de que debe proporcionar una función en myMap, ya sea de esta manera:

 s.MyMap(function() { // do some stuff })

O de esta manera:

 function doStuff() {} s.MyMap(doStuff)

De cualquier manera, se espera que el parámetro callback_f sea una función en este caso, y myMap llamará y ejecutará esta función, independientemente de lo que le pases.

2. Respondiendo a tu pregunta

Como ya sabrá, esta es una definición de función especial porque, al hacer Array.prototype.myMap, está modificando cómo funcionan todas las matrices y todas las matrices ahora obtendrán esta definición de función myMap.

En segundo lugar, puede llamar a esta función haciendo s.myMap() si s es cualquier matriz.

Así que en tu caso, la línea:

 newArray.push(callback(this[i]))

también podría escribirse como:

 let result_of_executing_the_callback = callback(this[i]) newArray.push(result_of_executing_the_callback)

lo que significa: primero, ejecute la función de devolución de llamada entrante en esto (= matriz actual) en el índice i. ¿Y cuál es la función de devolución de llamada entrante? Es la función f que estás pasando cuando haces s.MyMap(f):

En tu caso f es esto:

 function(item) { return item * 2; }

imagen de f siendo pasada a su función como el parámetro 'devolución de llamada'

(Si esto es útil, márquelo como aceptado).

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!