Avatar billede reffak Nybegynder
22. september 2001 - 17:57 Der er 7 kommentarer og
1 løsning

pass by reference muligt?

Hej
Er det muligt at lave pass by reference i javascript funktioner? I så fald, hvordan?
Eks:
<script language=javascript>
function testRef(a){
    a = a - 10;
}
var myVar = 10;
alert(myVar);
testRef(myVar);
alert(myVar);
</script>

Hvis pass by ref ellers virkede, skulle ovenst. kode gerne vise 2 dialogbokse; en med 10, den næste med 0.

Håber dette kan lade sig gøre, og at nogen ved hvordan
MVH
Avatar billede jakoba Nybegynder
22. september 2001 - 18:14 #1
Det er ikke nogen \"dette er by value\", \"dette er by Reference\" styring i javascript.
Atomære variable er by value ( number, string-value, boolean )
objekter er by reference.
Så læg din variabel ind i et objekt og brug objektet som parameter:

<script language=javascript>
function testRef(a){
    a.myVar = a.myVar - 10;
}

var myObj = new Objekt();
myObj.myVar = 10;
alert(myObj);
testRef(myObj);
alert(myObj);
</script>

mvh JakobA
Avatar billede reffak Nybegynder
22. september 2001 - 18:33 #2
nice...tak for det :-)
Avatar billede reffak Nybegynder
22. september 2001 - 19:28 #3
jeg har nu siddet og rodet med objekter i javascript. Jeg regnede med at kunne oprette en klasse tilpasset formålet, og derefter instatiere denne klasse - som du beskriver - men jeg kan overhovedet ikke få javascript til at acceptere noget af det. Derfor :
1. Hvordan oprettes klasser i javascript?
2. Har du et eksempel på dette gjort, et eller andet sted?

På forhånd tak for hjælpen
MVH
Avatar billede reffak Nybegynder
22. september 2001 - 19:28 #4
instatiere = instantiere
Avatar billede jakoba Nybegynder
22. september 2001 - 20:13 #5
du opretter dem ikke som klasser.
Det er igen det der med at typer ikke betyder så meget i javasvript.

Det nærmeste vi kommer det at specificere en klasse er at lave en constructor funkton der fylder det ønskede i klasse:

function Incrementor () {
    this.a = 0;
    this.inc = new Function( \"this.a += 1\"; return this.a\" );
    return this;
};

du kan så oprette  Incrementor  objekter med:
var olsen = new Incrementor();

mvh JakobA
Avatar billede jakoba Nybegynder
22. september 2001 - 20:16 #6
min javascript bibel er \'Client-Side JavaScript Reference\'  den er god at slå op i.
du når til den igennem:
http://developer.netscape.com/docs/manuals/  linket javascript.
Avatar billede reffak Nybegynder
23. september 2001 - 03:46 #7
stort...tak igen :-)
Avatar billede jumper Nybegynder
24. september 2001 - 12:12 #8
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