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

162
Views
¿Es `this` una palabra clave o un literal?

¿Por qué las especificaciones de JS llaman a this una palabra clave y no un literal?

Parece más un literal, porque podemos usarlo como un valor, o ¿qué me estoy perdiendo?

 return this

¿Entonces que es?

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

0

Realmente no importa, pero es una palabra clave de acuerdo con la especificación: consulte Palabras clave y palabras reservadas y literales . La especificación también usa la frase "palabra clave this " en el texto un poco, por ejemplo (seleccionando una instancia al azar), hay este texto en la sección sobre la operación abstracta GetThisEnvironment :

...Determina el enlace de la palabra clave this usando el LexicalEnvironment del contexto de ejecución en ejecución...

Las versiones anteriores de la especificación eran bastante explícitas al respecto:

[De la especificación del lenguaje ECMAScript 2019]

11.6.2.1 Palabras clave

Los siguientes tokens son palabras clave de ECMAScript y no se pueden usar como identificadores en los programas de ECMAScript.

Sintaxis

Palabra clave :: uno de await break case catch class const continue debugger default delete do else export extends finally for function if import in instanceof de new return super switch this throw try void de var typeof while with yield

(Énfasis mío).

Continuando con tu pregunta:

Parece más un literal, porque podemos usarlo como un valor...

No creo que haya ningún conflicto entre que algo sea una palabra clave y produzca un valor cuando se usa en una expresión. this es una palabra clave que puede usar para acceder al valor de ThisBinding del registro de entorno para el contexto de ejecución actual (o el más cercano que tenga uno).

rici hizo un buen comentario en los comentarios: Dijeron que no piensan en this como un literal porque a diferencia de (decir) true y false , no tiene un valor fijo. Los literales siempre tienen el mismo valor, "a" siempre es "a" , true siempre es true , null siempre es null , etc. Pero this tiene diferentes valores en diferentes lugares del código. Realmente actúa más como una const que como un literal; una const implícita establecida en el objeto de entorno del alcance (o no, en el caso del alcance de la función de flecha).

Pero de nuevo: Realmente no importa. Es una palabra reservada que tiene un propósito y una función especial en el idioma, lo que parece suficiente para que no tengamos que preocuparnos de si es una palabra clave o un literal (o ambos). :-)

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!