¿Qué es "esta" palabra clave en JavaScript?
Como sabemos que los Objetos son los bloques de construcción básicos en JavaScript, hay un objeto especial llamado 'this' y el valor de 'this' se puede ver en cada línea de ejecución de JavaScript, que nuevamente se decide en función de cómo es el código ser ejecutado. En este tema, vamos a aprender sobre "esta" palabra clave en JavaScript.
Importancia de la palabra clave "this" en JavaScript
- El objeto 'this' en JavaScript tiene muchos roles y usos importantes. Se utiliza principalmente para señalar una instancia de un objeto desde su propio método o constructor. Junto con señalar, 'esto' también se puede usar para realizar un seguimiento de la ejecución del contexto que se basa en el lugar donde se llama la función.
- Lo siguiente sobre la función 'this' en JavaScript es que el enlace al contexto de ejecución puede cambiar. Y, por último, el enlace al contexto de ejecución también se puede establecer cuando se hace referencia a él mediante una función de devolución de llamada, aunque la función esté definida dentro del objeto constructor.
¿Por qué utilizar "esta" palabra clave en JavaScript?
- En JavaScript, la palabra clave 'this' se usa en muchos contextos para hacer el mejor uso de los contextos. Básicamente, la palabra clave 'this' se usa para referirse a algún objeto o función en JavaScript. Como por la palabra (esto) en sí misma, podemos entender que se refiere a algo. Para entender 'esto' mejor de una manera práctica, podemos considerar un ejemplo: el Sr. X jugó Cricket y ganó el juego.
- Entonces, aquí en lugar de usar al Sr. X nuevamente, usamos 'él', que se refiere solo al Sr. X. Nos está ayudando a no seguir mencionando lo mismo una y otra vez. Del mismo modo, en JavaScript también, podemos usar 'esta' función u objeto para referir alguna otra función u objeto con el valor invocado en esa función u objeto. Por lo general, 'esto' se usa dentro de una función o método, pero también se puede usar fuera de la función (bajo alcance global).
¿Cómo utilizar "esta" palabra clave?
- Como sabemos que JavaScript es un lenguaje de secuencias de comandos, por lo que no es necesario compilar los códigos, se ejecuta en tiempo de ejecución. Puede ser ejecutado directamente por el intérprete, línea por línea. Y el entorno o el alcance en el que se ejecutan los códigos JavaScript se llama "Contexto de ejecución".
- El tiempo de ejecución de JavaScript mantiene una pila de contextos de ejecución y mantiene la pila actual en la parte superior. El objeto al que se refiere "esto" se cambia cada vez que se cambia el contexto de ejecución.
- Simplemente, podemos suponer que cuando se crea una función al mismo tiempo, también se crea una palabra clave 'this' (detrás de escena) que se vincula al objeto donde opera la función. La palabra clave 'this' funciona de manera diferente en JavaScript de otros lenguajes de programación.
Tiene varios valores dependiendo de dónde lo usemos, por ejemplo:
- 'esto' se refiere al objeto propietario en un método.
- 'esto' se refiere al objeto global en la situación sola.
- 'esto' se refiere a los objetos globales en una función simple también.
- 'esto' se refiere a un elemento en un evento que recibe el evento.
- 'esto' no está definido en una función de modo estricto.
1. Utilizado con un campo
Ejemplo : a continuación, 'esto' se refiere a un objeto llamado persona. Y la persona es la propietaria del método fullName.
var employee = (
firstName: “Raju”,
lastName: “Chaudhury”,
id: 123
fullName: function() (
return this.firstName + “ ” + this.lastName;
)
)
Un breve ejemplo para un campo de formulario:
check to alert this object name
Ponga el nombre y marque la opción de radio a continuación para alertar su entrada
Marque esto para alertar la entrada del campo de texto
Observe el controlador de eventos de envío al abrir el formulario para ver la acción tomada cuando se hace clic en el botón Enviar
2. Se utiliza para invocar a un constructor.
Por lo general, cuando usamos la palabra clave 'nuevo' para crear una instancia para un objeto de función, usamos la función como constructor.
En el siguiente ejemplo, declaramos una función Bike y luego la invocamos como un constructor:
function Bike(name)(
this.name = name;
)
Bike.prototype.getName = function()(
return this.name;
)
var bike = new Bike('Pulsar');
console.log(bike.getName());
En el ejemplo anterior, la nueva Bike ('Pulsar') es un constructor de la función Bike. Aquí, JavaScript crea un nuevo objeto y pone 'esta' palabra clave al objeto recién creado. Entonces, ahora podemos invocar Bike () como la función o como el constructor. Aquí, en caso de que eliminemos la palabra clave 'nueva', mostrará un error como se muestra a continuación:
var bajaj = Bike('Bajaj');
console.log(bajaj.name);
/ * Se mostrará como TypeError: No se puede leer la propiedad 'nombre' de undefined * /
Eso porque, esto en la función Bike () se coloca en el objeto global, bajaj.name resultados indefinidos.
Para hacer que la función Bike () siempre se invoque utilizando el constructor, verificamos al inicio de la función Bike () de la siguiente manera:
function Bike(name)(
if( ! (this instanceof Bike)(
throw Error(“We should use new operator to call a function”);
)
this.name = name;
)
Hay una metapropiedad conocida como "new.target" que permite detectar si una función se invoca como una simple invocación o constructor.
Aquí, podemos editar la función Bike () que usa la metapropiedad new.target como se muestra a continuación
function Bike(name)(
if( ! new.target)(
throw Error(“We should use new operator to call a function”);
)
this.name = name;
)
3. Se usa para devolver la instancia de clase actual
Una expresión de clase también es una forma de definir una clase en JavaScript. También se puede nombrar o no. El nombrado es el local de su cuerpo de clase y t puede ser recuperado por las propiedades de la clase.
/ * ejemplo para una expresión de clase sin nombre * /
let Mobile = class (
constructor(cost, weight)(
this.cost = cost;
this.weight = weight;
)
);
console.log(Mobile.name); //Output: Mobile
/ * ejemplo para una expresión de clase con nombre * /
let Mobile = class Mobile2(
constructor(cost, weight)(
this.cost = cost;
this.weight = weight;
)
);
console.log(Mobile.name);
Salida: Mobile2
4. Utilizado como parámetro de método
Cuando llamamos a un método de un objeto, JavaScript pone 'esto' al objeto que posee el método.
Ejemplo:
var Bike = (
name: 'Pulsar',
getName: function()(
return this.name;
)
)
console.log(bike.getName()); /*Pulsar*/
Aquí, este método getName () se refiere a un objeto de bicicleta.
Conclusión
La palabra clave 'this' en JavaScript es una herramienta poderosa que generalmente ayuda a los desarrolladores a referir las propiedades en contextos específicos, pero a veces también puede ser bastante complicado cuando se aplica a través de los diversos niveles de alcance. El valor de 'this' también se puede establecer explícitamente con call (), bind () y apply () también. Por lo general, el valor de 'esto' está determinado por el contexto de ejecución de la función. Las funciones de flecha generalmente no enlazan 'esto' y en lugar de eso 'esto' está enlazado léxicamente.
Artículos recomendados
Esta es una guía de "esta" palabra clave en JavaScript. Aquí discutimos la importancia y cómo usar "esta" palabra clave en JavaScript junto con el ejemplo. También puede consultar el siguiente artículo.
- Encapsulación en JavaScript
- Inserción Ordenar en JavaScript
- Palindrome en JavaScript
- Compiladores JavaScript
- esta palabra clave en java | Ejemplos de esta palabra clave
- Reglas de instancia de Java con ejemplo