Avatar billede mrslayer Nybegynder
17. maj 2006 - 09:26 Der er 3 kommentarer og
2 løsninger

Javascript OO

Hejsa.

Har flere steder læst at Java script er ganske fint til at lave klaser osv i, hvilket jo er dejligt. Desværre har jeg ikke formået at få diverse guides/artiklers fremgangsmåde til at virke så jeg håber lige der er en her som gerne lige kort vil bruge tiden på at lave en dummy for følgende eksempel.

Jeg har en html hvori jeg inkludere en javascript fil.

At inkludere javascript filen er ret simpelt da jeg bare skal bruge src optionen.

Men lad os sige jeg har dummy klasse ved navn dummy.
Dummy skal have et par metoder, rent faktisk 2, så lad os kalde dem for metode1 og metode2.

Det jeg gerne vil er at vide hvordan jeg i min javascript fil laver en klasse således at jeg kan skrive test = new dummy();

og senere lave kald som dette test.metode1() og test.metode2();

Derudover vil jeg gerne høre hvordan min kode i html filen skal se ud hvis jeg gerne vil kunne lave et objekt og så bruge det samme objekt på hele siden, altså ved en knap kalde test.metode1() ved en onclick og en anden knap kalde test.metode2();

Håber jeg har gjort problemstillingen klar, så jeg kan få et entydigt svar.

(200 point, mest fordi opgaven er træls og tager tid at skrive ind, så links til andre sider er ikke præcist det jeg søger)
Avatar billede -mundi- Nybegynder
17. maj 2006 - 09:38 #1
<script type="text/javascript">
function dummy(){

}

dummy.prototype.metode1 = function(){
    alert('Dette er metode1');
}
dummy.prototype.metode2 = function(){
    alert('Dette er metode2');
}

test = new dummy();
test.metode1();
test.metode2();
</script>
<button onclick="test.metode1();">Afprøv metode1</button>
Avatar billede mrslayer Nybegynder
17. maj 2006 - 10:07 #2
Jeg antager at det som laver der er beregnet til at køres i en fil? Fordi det virker fint hvis det hele er samlet i en fil, men ikke hvis jeg prøver at dele det op i 2 filer. gør følgende laver filen test.html som indeholder:

<script type="text/javascript" src="dummy.js">
test = new dummy();
test.metode1();
test.metode2();
</script>
<button onclick="test.metode1();">Afprøv metode1</button>

og filen dummy.js som har følgende indhold:
function dummy(){

}

dummy.prototype.metode1 = function(){
    alert('Dette er metode1');
}
dummy.prototype.metode2 = function(){
    alert('Dette er metode2');
}


Men kører jeg så html filen får jeg fejlen, "test is not defined".
Avatar billede -mundi- Nybegynder
17. maj 2006 - 10:23 #3
du må ikke lægge javascript kode ind i script tagget når du samtidigt bruger src attributten.

<script type="text/javascript" src="dummy.js"></script>
<script type="text/javascript">
test = new dummy();
test.metode1();
test.metode2();
</script>
Avatar billede mrslayer Nybegynder
17. maj 2006 - 10:29 #4
Hmm havde også prøvet at lave det i sit eget tag, men åbenbart havde kun skrevet type="javascript" og ikke type="text/javascript", hvad forskel gør det?

Men tak for hjælpen det virker nu.
Avatar billede roenving Novice
17. maj 2006 - 11:40 #5
Den 'gamle' attribut til at frtælle hvilken type script, der er tale om hed language, f.eks. language="Javascript1.2" eller language="VBScript", mens den nutidige hedder type, og indeholder en mime-type, derfor skal du benytte en gyldig mime-type, der for javascript hedder 'text/javascript' !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester