Verwendung von Objekten als Übergabewert bei Funktionen
kaepten
- javascript
0 Calocybe
Ich möchte gerne folgendes machen:
( form name="form" )
( option name="DropDown1" )
//Funktion
function test(objekt,index,txt)
{
document.form.objekt.options[index].text = txt;
}
//Aufruf
test(DropDown1,0,"Test");
Aber diese Art funktioniert in meiner Anwendung nicht.
Was funktioniert wäre z.B.
//Funktion
function test(objekt,index,txt)
{
objekt.DropDown1.options[index].text = txt;
}
//Aufruf
test(document.form,0,"Test");
Stimmt meine Feststellung, oder habe ich wieder einmal wo anders im Code was falsch gemacht? Warum geht das Eine, aber das Andere nicht??
cheers
kaepten
Hi!
( form name="form" )
Namen, die in JavaScript nachmal als Bezeichner vorkommen (form, name, usw.), sollte man besser verwmeiden, da sowas leicht zu Kollisionen fuehrt.
//Funktion
function test(objekt,index,txt)
{
document.form.objekt.options[index].text = txt;
}
//Aufruf
test(DropDown1,0,"Test");
Aber diese Art funktioniert in meiner Anwendung nicht.
Natuerlich nicht. Was ist denn DropDown1? Ein Objekt? Nein! Das Objekt waere document.form.DropDown1. Aber wenn Du nur DropDown1 schreibst, dann ist das... gar nichts! Eine undefinierte Variable, die zu 0 oder undefined ausgewertet wird..
Was funktioniert wäre z.B.
//Funktion
function test(objekt,index,txt)
{
objekt.DropDown1.options[index].text = txt;
}//Aufruf
test(document.form,0,"Test");
Genau, denn hier hast Du ja ein handfestes Objekt, naemlich document.form, welches Dein Formular repraesentiert. Und dieses Objekt hat tatsaechlich eine Eigenschaft namens DropDown1. (Betrachtet man es theoretisch, ist es eigentlich keine Eigenschaft, sondern eine Assoziation, aber das ist jetzt mal nicht wichtig.)
Was auch noch geht:
function test(objekt,index,txt) {
objekt.options[index].text = txt;
}
test(document.form.DropDown1, 0, "Test");
Calocybe