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

426
Vistas
this/apply/call/bind en JavaScript, parámetros invisibles

Estoy trabajando en un problema de JavaScript this implica ocultar un parámetro para demostrar cómo funciona.

El problema consiste en buscar una matriz, [1,2] , en un espacio de búsqueda que es una matriz multidimensional, por ejemplo, [[2,3], [3,4]] . Sin embargo, el espacio de búsqueda se pasa como parte de this valor a la función.

Definición de función:

 function contains(cell) {}

¿Cómo accedo al espacio de búsqueda pasado como this a la función? El caso de prueba adjunto usa bind() para pasar en el espacio de búsqueda, por ejemplo

 contains.bind([[2,3], [3,4]])

Aquí está el intento de completar la función:

 function contains(cell){ let found = false; [x, y] = cell; // How do I access searchSpace passed in through `this`? searchSpace.forEach((element) => { [j, k] = element; // match first occurrence in array if (x === j && y === k){ found = true; } }); return found; }

¿Cómo invoco la función:

 // contains(cell) contains([1,2])
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Debería poder pasar ese valor como una variable a la función contains . this se refiere a algo diferente dentro y fuera de la función (ver esta pregunta para más contexto).

El enfoque más fácil sería:

 function contains(cell, searchSpace){ let found = false; [x, y] = cell; // How do I access searchSpace passed in through `this`? searchSpace.forEach((element) => { [j, k] = element; // match first occurrence in array if (x === j && y === k){ found = true; } }); return found; } contains([1,2], this.searchSpace);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea vincular [[2,3], [3,4]] como this a la función contains , sería contains.bind([[2,3], [3,4]]) y no contains().bind([[2,3], [3,4]]) .

Y bind no cambia la función en la que se llama directamente, por lo que contains.bind([[2,3], [3,4]]) solo y luego llamar a contains no hará nada.

bind devuelve una nueva función, y esa función luego llama a contains con el valor dado como this .

¿Cómo accedo al espacio de búsqueda pasado como this a la función?

Al usar this en la función.

 function contains(cell) { console.dir(this) console.dir(cell) } const containsWithBind = contains.bind([[2,3], [3,4]]) containsWithBind([1,2])

Cómo debería verse su intento de código:

 function contains(cell){ let found = false; [x, y] = cell; // How do I access searchSpace passed in through `this`? this.forEach((element) => { [j, k] = element; // match first occurrence in array if (x === j && y === k){ found = true; } }); return found; } const containtsWithBind = contains.bind([[2,3], [3,4]]) // contains(cell) console.log(containtsWithBind([1,2])) console.log(containtsWithBind([2,3]))

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