Nwlapcug.com


Come implementare un distruttore di base in JavaScript

Come implementare un distruttore di base in JavaScript


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

Istruzioni

Configurazione iniziale

1

Installazione l'installazione del toolkit Dojo per quanto riguarda il web progetto (vedere risorse per dettagli di installazione/configurazione). Per mantenere le cose organizzate, inserirlo in una sottocartella del progetto denominato "script/dojotoolkit." Si dovrebbe finire con una struttura di percorso simile al seguente:

/

script /

dojotoolkit /

Dijit /

Dojo /

Lightbox / 2

Sotto la cartella "scripts", creare una nuova cartella denominata "lib". Di sotto di questo, creare un'altra cartella denominata "dest." Questo è dove memorizzeremo il JavaScript creeremo per nostro distruttore di classe.

3

Creare un nuovo file HTML nella directory radice del progetto e il nome "index. html." (Il nome può essere quello che vuoi, ma che è come ci riferiremo ad esso qui). Questo servirà principalmente per scopi di test per ora.

4

Nel file index. html, registrare la libreria di Dojo e configurare il vostro Dojo "percorso di 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" Abbiamo creato in precedenza.

Creazione della classe JavaScript

5

All'interno la "script"/ "lib" / "dest" cartella, creare un nuovo file JavaScript e il nome "DestructorTest.js." Questo conterrà l'effettiva classe JavaScript e la funzionalità che si starà lavorando con.

6

Aggiungere il codice seguente nel nuovo file JavaScript:

Dojo.provides ("dest. DestructorTest");

Dojo.Declare ("dest. DestructorTest", null {

name: null,

address: null,

constructor: function() {

this.name = "Bob Jones";

this.address = "123 Test Dr.";

alert('Constructing a DestructorTest!');

},

destroy: function() {

this.name = null;

delete this.name;

this.address = null;

delete this.address;

alert('Destroying a DestructorTest!');

}

});

7

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

< script type = "text/javascript" >

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

// add the following line:

dojo.require("dest.DestructorTest");

< / script >

Questo è simile a un'istruzione "import" in Java, "utilizzando" in c#, o (in misura minore) la direttiva #include in C/C++.

8

Nella parte inferiore 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;

function initDestObj() {

destObj = new dest.DestructorTest();

dojo.addOnUnload(destroyDestObj);

}

function destroyDestObj() {

if (destObj != null) {

destObj.destroy();

}

destObj = null;

delete destObj;

}

dojo.addOnLoad(initDestObj);

< / script >

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