Contexto a través de una variable en JavaScript
La solución es la siguiente: en la función externa escribimos
this en cualquier variable y esta variable
estará disponible en la función interna, como
todas las variables (normalmente esta variable se llama
self). Así transmitiremos
this de la función externa a la interna:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // mostrará 'text'
let self = this; // escribamos this en cualquier variable, por ejemplo, en self
function child() {
console.log(self.value); // mostrará 'text'
}
child();
}
Supongamos que tenemos el siguiente código:
<input id="elem" value="3">
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', func);
function func() {
alert( square() );
function square() {
return this.value * this.value;
}
}
El autor del código quería que al perder el foco
se mostrara en pantalla el cuadrado del número de value
del input. Sin embargo, por alguna razón, al perder el foco
se muestra un error en la consola. Corrija el error
del autor del código. Escriba un texto en el que
explique al autor del código por qué surgió
su error.