Notizie: scarica ora l'ultima versione disponibile di SeaMonkey!

Autore Topic: Gestione dell'oggetto 'this' in situazioni particolari  (Letto 1549 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline dodomorandi

  • Post: 1
Gestione dell'oggetto 'this' in situazioni particolari
« il: 10 Aprile 2010 14:01:45 »
In questi giorni mi sono trovato a dover creare un oggetto in javascript con al suo interno oggetti HTML. Andando ad utilizzare funzioni di callback per la gestione di eventi in correlazione a tali oggetti HTML mi sono trovato davanti ad un problema: l'oggetto 'this' all'interno di un metodo di classe, al momento in cui il metodo è richiamato da un evento, non è più un'istanza della classe ma è l'oggetto HTML che fa il trigger dell'evento.

Un codice javascript chiarirà meglio il problema:
Codice: [Seleziona]
function pippo()
{
    this.obj=document.createElement("div");
    this.obj.onclick=cliccato;
}

pippo.prototype.cliccato = function(evt)
{
    // Credevo che l'oggetto 'this' sarebbe stato un'istanza di pippo
    alert(this);
    // ...invece è il div creato prima!
}

Ho anche trovato online un workaround per questo:
Codice: [Seleziona]
function pippo()
{
    this.obj=document.createElement("div");
    var me=this;
    this.obj.onclick=function(evt)
    {
        alert(me);
        // 'me' in questo caso è l'istanza dell'oggetto
    };
}

Ok, la cosa funziona... ma è un workaround! Non sono riuscito a trovare qualcosa inerente a questo problema sul w3c (non ho le capacità per poter interpretare quelle enormi specifiche sul DOM), quindi non so gli standard cosa prevedono. Sta di fatto che non vedo perché 'perdere' il riferimento all'istanza della classe se per riferirsi al target c'è già la proprietà event.currentTarget (standard secondo il w3c).

Grazie a tutti del supporto.

Offline lucasali

  • Moderatore
  • Post: 7493
Re: Gestione dell'oggetto 'this' in situazioni particolari
« Risposta #1 il: 10 Aprile 2010 14:47:36 »
non sono esperto in materia ... in attesa che qualcuno più esperto ti risponda
vedi se trovi degli spunti in questa ricerca: https://developer.mozilla.org/Special:Search?search=this&type=fulltext&go=Search

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: Gestione dell'oggetto 'this' in situazioni particolari
« Risposta #2 il: 10 Aprile 2010 14:55:47 »
Leggi anche questo:
http://www.highdots.com/forums/javascript-italian/domanda-programmazione-ad-oggetti-con-276424.html

in ogni caso, essendo questa una questione teorica riguardante JS, ti converebbe approfondire su HTML.it o altro foru.
Ciao

0 Utenti e 1 Visitatore stanno visualizzando questo topic.