Als je er een object van maakt, dan wel. En wil je dat niet, dan zul je met global vars moeten gaan werken.
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)
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
Nee, er is geen toegang a-la C naar de geheugenadressen van variabelen.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?
Probeer dit eens: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
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] |