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

196
Vistas
Pregunta básica de javascript sobre la función call (): conversión de estos valores que no son de cadena a cadenas

Leyendo documentos de MDN y he encontrado este código:

 const a = String.prototype.toUpperCase.call({ toString: function toString() { return 'abcdef'; } }); // prints out 'ABCDEF'

La call la función toma como primer argumento el objeto con el método toString , lo que significa llamar a una función toUpperCase() en el objeto o (corríjame, por favor, si me equivoco):

 ({ toString: function toString() { return 'abcdef'; }}).toUpperCase()

Este código imprime 'ABCDEF', entonces, ¿cómo podría el método toUpperCase() invocar la función toString() dentro del objeto? Eso es lo que no entiendo.

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

0

Estás llamando a toUpperCase pasándole this valor que es un objeto con un método toString . Contrariamente a la creencia popular, toUpperCase no asume this será una cadena. En su lugar, convierte lo this sea (en su caso, el objeto con un método toString ) en una cadena primitiva como uno de sus primeros pasos (consulte la especificación aquí ¹). Hacer eso llama al método toString de su objeto (detalles aquí y aquí ). En ese momento, toUpperCase tiene "abcdef" para trabajar, lo convierte a mayúsculas y lo devuelve.

Conceptualmente (no exactamente ), toUpperCase hace esto:

 function toUpperCase() { const S = String(this); // This is what triggers the call to `toString` // on your object const L = /*...convert the characters in S to to upper case*/; return L; }

¹ Eso es para toLowerCase , perotoUpperCase se define diciendo "Esta función se comporta exactamente de la misma manera que String.prototype.toLowerCase , excepto que String se mapea usando el algoritmo toUppercase de la conversión de mayúsculas y minúsculas predeterminada de Unicode".

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