Toon posts:

client side javascript variabele byref meegeven?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogelijk om bij client side javascript bij een functie een variabele by reference mee te geven?

  • Pelle
  • Registratie: Januari 2001
  • Nu online

Pelle

🚴‍♂️

Als je er een object van maakt, dan wel. En wil je dat niet, dan zul je met global vars moeten gaan werken.

Verwijderd

Topicstarter
Simpel omschreven wil ik het volgende:

var x = 1;
var y = 2;

function doeIets(eenVariabele){
eenVariabele = randomIetsAnders;
}


//nu is x = 1
doeIets(x);
//nu is x = randomIetsAnders

//nu is y = 2
doeIets(y);
//nu is y = randomIetsAnders


Dezelfde functie moet dus een globale variabele aanpassen. Nu kan ik voor elke globale variabele wel dezelfde functie schrijven met de desbetreffende variabelenamen maar ik hoopte dat ik dmv het byRef meegeven van een variabele alles met dezelfde functie kon doen. Hoe kan ik bijvoorbeeld x, wat een integer is omzetten in een object , zodat het wel mogelijk is? En hoe schrijf en lees ik dan de integer naar dat object? (Het gaat om clientside javascript)

Verwijderd

Verwijderd schreef op 22 January 2003 @ 18:47:
Is het mogelijk om bij client side javascript bij een functie een variabele by reference mee te geven?
Nee, er is geen toegang a-la C naar de geheugenadressen van variabelen.
Verwijderd schreef op 22 January 2003 @ 18:59:
Simpel omschreven wil ik het volgende:

var x = 1;
var y = 2;

function doeIets(eenVariabele){
eenVariabele = randomIetsAnders;
}


//nu is x = 1
doeIets(x);
//nu is x = randomIetsAnders

//nu is y = 2
doeIets(y);
//nu is y = randomIetsAnders
Probeer dit eens:
Java:
1
2
3
4
5
6
function doeIets(){
  return randomIetsAnders;
}
//nu is x = 1
x = doeIets();
//nu is x = randomIetsAnders

Niet helemaal wat je in gedachten had, maar het werkt wel. Pointers en references bestaan in JavaScript alleen in relatie tot Objects zoals Arrays. Bekijk de volgende code: (uit de JS Reference)
Java:
1
2
3
4
5
6
7
8
9
var a = 3.14;
var b = a; // kopie van a
a = 4;
alert(b); // 3.14, het kopie is niet veranderd

var a = [1,2,3];
var b = a; // pointer(!) naar array a
a[0] = 99;
alert(b); // [99,2,3]