Come implementare un distruttore di base in JavaScript

June 5

Come implementare un distruttore di base in JavaScript


JavaScript non dispone di un meccanismo di distruttore reale come il C ++ o altri linguaggi. Detto questo, quando si sta creando oggetti in JavaScript, è ancora possibile implementare alcune funzionalità di base distruttore-esque. Questa funzionalità può essere attivata manualmente nel codice, oppure è possibile aggiungerlo alla manifestazione "onunload" di una pagina per attivare automaticamente quando l'utente si sposta dalla pagina. Questo può essere implementato usando "dritto" JavaScript, senza librerie esterne, ma utilizzando il toolkit Dojo può rendere il codice un po 'più pulito e più facile da lavorare.

istruzione

Configurazione iniziale

1 Installare l'installazione toolkit Dojo rispetto al vostro progetto web (vedi Risorse per i dettagli di installazione / configurazione). Per mantenere le cose organizzate, metterlo in una sottocartella del progetto denominato "scripts / dojotoolkit." Si dovrebbe finire con una struttura percorso simile al seguente:

/

scripts /

dojotoolkit /

dijit /

dojo /

dojox /

2 Nella cartella "script", creare una nuova cartella denominata "lib". Sotto di esso, creare un'altra cartella denominata "dest." Questo è dove ci memorizzare la classe JavaScript creeremo per il nostro distruttore.

3 Creare un nuovo file HTML nella directory principale del progetto, e il nome "index.html". (Il nome può essere quello che vuoi, ma è così che si farà riferimento ad esso qui.) Questo sarà principalmente utilizzato per scopi di test, per ora.

4 Nel file index.html, registrare la libreria Dojo e configurare il Dojo "percorso del modulo" in questo modo:

<Html>

&lt;head>

& Lt; script type = "text / javascript" charset = "utf-8"> & lt; / script>

& Lt; script type = "text / javascript">

dojo.registerModulePath ( "lib", "../../lib/");

& Lt; / script>

& Lt; / head>

& Lt; body>

& Lt; / body>

</ Html>

Questo ci permetterà di utilizzare le classi che abbiamo posto nella cartella "lib" che abbiamo creato in precedenza.

Creazione della classe JavaScript

5 All'interno delle "script" cartella / "lib" / "dest", creare un nuovo file JavaScript e il nome "DestructorTest.js." Questo conterrà la classe reale JavaScript e funzionalità lavoreremo con.

6 Aggiungere il seguente codice al nuovo file JavaScript:

dojo.provides ( "dest.DestructorTest");

dojo.declare ( "dest.DestructorTest", null, {

name: null,

Indirizzo: null,

costruttore: function () {

this.name = "Bob Jones";

this.address = "123 test Dr.";

alert ( 'Costruire una DestructorTest!');

},

distruggere: function () {

this.name = null;

eliminare this.name;

this.address = null;

eliminare this.address;

alert ( 'Distruggere una DestructorTest!');

}

});

7 Indietro nel file index.html, aggiungere il seguente codice al blocco di script abbiamo aggiunto in precedenza per dare l'accesso pagina al tuo nuova classe JavaScript:

<Script type = "text / javascript">

dojo.registerModulePath("lib", "../../lib/");

// Aggiungere la seguente riga:

dojo.require ( "dest.DestructorTest");

</ Script>

Questo è simile a una dichiarazione di "importazione" in Java, "utilizzando" in C #, o (in misura minore) della direttiva #include in C / C ++.

8 Alla fine del file index.html, prima del tag di chiusura "corpo", aggiungere un nuovo blocco di script con il seguente codice:

<Script type = "text / javascript">

var destObj;

funzione initDestObj () {

destObj = new dest.DestructorTest ();

dojo.addOnUnload (destroyDestObj);

}

funzione destroyDestObj () {

if (destObj! = null) {

destObj.destroy ();

}

destObj = null;

eliminare destObj;

}

dojo.addOnLoad (initDestObj);

</ Script>

Salvare il file e aprirlo nel browser; si dovrebbe vedere una finestra di messaggio viene visualizzata che indica che viene creato un nuovo DestructorTest. Se si aggiorna la pagina, o navigare a una pagina diversa, si otterrà un'altra finestra di messaggio che informa che l'oggetto DestructorTest viene distrutto.