Una parola molto importante nella programmazione Javascript รจ this, grazie a questo particolare identificatore, infatti, รจ possibile far riferimento "a se stesso" (in inglese "this" vuol dire letteralmente "questo").
Lโutilizzo di this in Javascript differisce rispetto ad altri linguaggi orientati agli oggetti. Come detto, infatti, Javascript non conosce il concetto di classe e pertanto non รจ sempre facile identificare lโoggetto al quale this si riferisce. Il problema principale, quindi, รจ identificare il contesto al quale this fa riferimento.
Utilizzare this inline
Lโutilizzo piรน comune di this รจ inline allโinterno cioรจ di un tag HTML; vediamo un esempio:
<span onclick="alert(this.tagName.toLowerCase());">clicca qui</span>
Nel nostro esempio, cliccando si aprirร un alert con allโinterno la dicitura "span". Il contesto di this, infatti, รจ rappresentato dal tag a cui รจ applicato lโevento, quindi, nel nostro esempio, il tag <span>.
Utilizzare this allโinterno di una funzione
Lโoggetto this, perรฒ, puรฒ essere utilizzato anche allโinterno di una funzione, ma in questo caso le cose si fanno piรน complesse. facciamo un esempio:
function faccioQualcosa() {
alert(this.style.color);
}
Richiamando la funzione senza associarla ad alcun oggetto:
<script>faccioQualcosa();</script>
Questa produrrebbe un errore! In mancanza di unโassociazione esplicita con un oggetto, infatti, il this si presume riferito al generico oggetto window e, pertanto, nel caso concreto finirebbe col produrre un errore.
Vediamo un altro esempio:
document.getElementById('mioDiv').onclick = faccioQualcosa();
In questo caso la funzione, invece, produrrebbe il risultato atteso, cioรจ mostrerebbe โ allโatto del click โ un alert con il valore della proprietร CSS "color" settata nellโattributo "style" dellโelemento selezionato.
In questo caso, infatti, il contesto di this sarebbe lo specifico oggetto relativo allโelemento selezionato. Il contesto, infatti, sarebbe:
document.getElementById('mioDiv')
e non piรน il generigo oggetto window.
Utilizzare this allโinterno di un oggetto
Un altro ruolo importante di this รจ allโinterno di un oggetto. Nellโottica di una programmazione orientata agli oggetti, infatti, lโoggetto this assume un significato particolare. Dentro ad un oggetto, infatti, this fa riferimento allโoggetto stesso.