⊗jsPmDmThsA 357 of 505 menu

Ventaja de this en JavaScript

Por lo dicho anteriormente, aún no es obvia la ventaja especial de this. Después de todo, dentro de la función manejadora estaría disponible nuestro elemento - ya que la variable elem será global para nuestra función func:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { // aquí está disponible la variable elem con nuestro elemento }

Y, no es difícil deducir, que el contenido de this y el contenido de la variable elem en nuestro caso son iguales:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { console.log(elem === this); // mostrará true }

¿Cuál es la ventaja especial de this? Se manifiesta cuando tenemos varios elementos, y a cada uno está vinculada la misma función.

Veamos un ejemplo. Supongamos que tenemos 3 botones:

<input id="button1" type="submit" value="text1"> <input id="button2" type="submit" value="text2"> <input id="button3" type="submit" value="text3">

Obtenemos referencias a ellos en variables:

let button1 = document.querySelector('#button1'); let button2 = document.querySelector('#button2'); let button3 = document.querySelector('#button3');

Vinculamos a estos botones la misma función:

button1.addEventListener('click', func); button2.addEventListener('click', func); button3.addEventListener('click', func);

Y dentro de la función mostraremos this.value:

function func() { console.log(this.value); }

Resulta que tenemos tres botones. Hacer clic en cada botón llevará a la llamada de la función func. Al mismo tiempo, con cada clik this contendrá una referencia al botón en el que ocurrió el evento.

Es decir, cada clic mostrará en la consola el value del botón en el que ocurrió el clic, ¡pero lo hará la misma función func! He ahí la ventaja de usar this.

Se dan 5 párrafos con algunos textos. Al hacer clic en cualquier párrafo, escriba al final de su texto un signo de exclamación.

Se dan 3 inputs, en los que están escritos algunos números. Al perder el foco en cualquier input, eleve el número que contiene al cuadrado.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar