selfhtml.de - Alles für den Webmaster!

 

Anzeige: Goneo - Du machst das Web!

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

Funktionsparameter in der Funktion ändern

Autor: BWEIBERG
Datum: 31.08.2010 09:01:41

Hallo allerseits,

ich habe mal eine kurze Frage:
Ist es möglich, den Wert von Funktionsparametern innerhalb der Funktion zu ändern? In C würd man der Funktion für so etwas einen Zeiger auf die Variabel übergeben, die modifiziert werden soll. Geht so etwas in JS?
Konkret:
Ich habe eine globale Variabel und möchte eine Funktion in einem ausgelagerten Skript aufrufen, welche mir diese Variabel verändert. Der Name der Variabel ist jedoch verschieden, so dass die Funktion diese nicht direkt ändern kann. Der Variablen einfach den Rückgabewert der Funktion zuzuweisen scheidet ebenfalls aus, da sich diese Funktion teilweise rekursiv aufruft.



Anzeige: Goneo - Du machst das Web!

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

Re: Funktionsparameter in der Funktion ändern

Autor: reporter
Datum: 31.08.2010 09:29:18

Hallo,

> Ist es möglich, den Wert von Funktionsparametern
> innerhalb der Funktion zu ändern?

Kannst du dies genauer Erklären was du meinst? Also ich verstehe darunter folgendes:

var globaleVariable = 1;
function rekursiv()
{
globaleVariable++;
...
}
rekursiv();


> In C würd man
> der Funktion für so etwas einen Zeiger auf die
> Variabel übergeben, die modifiziert werden soll.

Uhm was war noch einmal "Zeiger"? Lang lang ist es bei mir her.. :-)



Anzeige: Goneo - Du machst das Web!

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

Re: Funktionsparameter in der Funktion ändern

Autor: BWEIBERG
Datum: 31.08.2010 10:08:12

Geimeint ist folgendes:

var IchKannAuchAndersHeissen = 0;

function Start() {
  modify(IchKannAuchAndersHeissen);
  alert(IchKannAuchAndersHeissen);
}

function modify(value) {
  value ++;
}

Das kann so jedoch nicht funktionieren, weil alle Funktionsparameter immer per Value und nicht per Reference übergeben werden.
Die Lösung habe ich mittlerweile gefunden! Man muss sich nur ein Object anlegen, welches die zu modifizierende Variabel enthält:

var Obj = new Object();
Obj.IchKannAuchAndersHeissen = 0;

function Start() {
  modify(Obj);
  alert(Obj.IchKannAuchAndersHeissen);
}

function modify(value) {
  value.IchKannAuchAndersHeissen ++;
}

> Hallo,
>
> > Ist es möglich, den Wert von
> Funktionsparametern
> > innerhalb der Funktion zu ändern?
>
> Kannst du dies genauer Erklären was du meinst?
> Also ich verstehe darunter folgendes:
>
> var globaleVariable = 1;
> function rekursiv()
> {
>  globaleVariable++;
>  ...
> }
> rekursiv();
>
>
> > In C würd man
> > der Funktion für so etwas einen Zeiger auf
> die
> > Variabel übergeben, die modifiziert werden
> soll.
>
> Uhm was war noch einmal "Zeiger"? Lang lang ist
> es bei mir her.. :-)