JavaScript har inte en faktisk destructor mekanism som C + + eller andra språk. Som sagt , när du skapar objekt i JavaScript , kan du fortfarande genomföra några grundläggande destructor-esque funktionalitet . Denna funktion kan aktiveras manuellt i koden , eller så kan du lägga till den till en sidas " onunload " händelse för att utlösa det automatiskt när användaren navigerar bort från sidan. Detta kan åstadkommas genom att använda " rak " JavaScript , utan någon yttre bibliotek , men med hjälp av Dojo Toolkit kan göra koden lite renare och lättare att arbeta med .
Du behöver :
Dojo JavaScript verktygslåda
. Textredigerare .
Grundinställning
1 .
Installera Dojo Toolkit installation med avseende på din web -projektet ( se Resurser för installation /konfiguration detaljer ) . Att hålla saker organiserade , placera den i en undermapp i ditt projekt som kallas " scripts /dojotoolkit . " Du bör sluta med en sökväg som liknar följande :
/
-scripts /
-dojotoolkit /
-dijit /
-dojo /
-dojox /
2 .
Under " skript "mappen , skapa en ny mapp som heter " lib ". Nedanför att skapa en mapp som heter " dest . " Det är där vi ska lagra JavaScript klassen vi skapar för våra destructor .
3 .
Skapa en ny HTML-fil i ditt projekt rot , och ge den namnet " index. html . " ( Namnet kan bli vad du vill, men det är hur vi ska referera till det här. ) Detta kommer i första hand användas för testning för nu .
4 .
i ditt index . html -fil , registrera Dojo biblioteket och konfigurera Dojo " modul vägen " så här:
;
Detta ger oss möjlighet att använda klasser som vi plats i " lib " mappen vi skapade tidigare .
Skapa JavaScript klass
1 .
innanför " skript "/" lib "/" dest " mapp , skapa en ny JavaScript-fil och ge den namnet " DestructorTest . . js "Detta kommer att innehålla det faktiska JavaScript klass och funktionalitet vi kommer att arbeta med
2
Lägg till följande kod till din nya JavaScript-filen : .
dojo. provides ( " dest. DestructorTest " ) ;
dojo. declare ( " dest. DestructorTest " , null , {
namn : null ,
adress : null ,
bygga: function () {
this. name=" Bob Jones " ,
this. address=" 123 Test Dr " ;
alert ( " Att bygga en DestructorTest !');
} ,
förstöra : function () {
detta . name=null ;
bort this. name ;
this. address=null ;
bort denna . adress ,
alert ( " förstöra en DestructorTest !');
}
} ) ;
3
tillbaka i din index. html -fil , lägg till följande kod till skriptet blockera vi lagt tidigare för att ge sidan tillgång till din nya JavaScript- klass :
Detta liknar en " import " uttalande i Java , " använder " i C # , eller ( i mindre utsträckning ) på # include i C /C + + .
4 .
Längst ner filen index. html , före den avslutande " kropp " tagg , lägg till en ny skriptblock med följande kod :
Spara filen och öppna den i webbläsaren , bör du se en meddelanderuta visas om att en ny DestructorTest skapas . Om du uppdatera sidan eller gå till en annan sida , får du ett meddelande som informerar dig om att DestructorTest objektet är förstört .
tips och varningar
Det är möjligt att undvika extra " destroyDestObj "-funktionen i index. html sida genom att antingen hänvisa till destObj. destroy metod direkt ( dvs dojo. addOnUnload ( destObj. destroy ) ) eller genom att lägga dojo. addOnUnload metodanrop till den DestructorTest objektets konstruktor . Om du är i arv i JavaScript , kan du enkelt lägga en basklass med en förstöra metod och underklass den för att hålla din kod renare och lättare att hantera . skillnad från C + + , lade destructor mönster här inte automatiskt att anropa när ditt objekt är Nulled eller tas bort . Du måste hålla ett öga att se till att förstöra anropas.