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

303
Visualizações
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 Respostas
Responde à pergunta

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 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