Hallo Frank,
Dieses Problem klingt irgendwie nach einer Hausaufgabe :-).
Ich werde mich deshalb um eine ausführlichere Erklärung bemühen. Lese auch <../../tebc.htm#a3>
Hierbei sind typ [i], x, y, z beliebige Variablenwerte. Wie muss ich das Objekt Fuhrpark definieren, wie das Objekt (?) Auto, damit das Ganze funktioniert.
Was du benötigst ist zwei Objekte.
Einmal das Objekt Fuhrpark und dann noch das Auto mit den jeweiligen Eigenschaften an.
Fangen wir mit dem Fuhrpark an:
An sich könntest du hier ein Array verwenden aber wenns halt neue Objekte sein sollen :-)
Du definierst dir eine Funktion. Diese legt die Eigenschaft des Fuhrparkes -die Autonummer fest.
function Fuhrpark(num)
{this.num=num;}
Anschließend machst du das Gleiche mit dem Auto selbst.
function auto(marke,kilometer,verbrauch,fahrer)
{
this.marke=marke;
this.kilometer=kilometer;
this.verbrauch=verbrauch;
this.fahrer=fahrer;
}
Wie du siehst sind hier die gesuchten Eigenschaften untergebracht.
Jetzt kannst du daran gehen, die Objekte zu erzeugen:
function newAuto()
{for (i=0;i<4;i++)
{new fuhrpark("auto"+i);
fuhrpark["auto"+i]=new auto("Audi",3000,7,"Schulze");
}
alert(fuhrpark.auto2.marke)}
Mit new Fuhrpark() erzeugst du das Objekt Fuhrpark.
new ist ein reserviertes Wort zur Erzeugung eines neuen Objektes. Durch die Funktion Fuhrpark(num)wird diesem Objekt Eigenschaften zugewiesen. In diesem Fall Auto1. Deshalb auch die Verwendung von this. Dieses reservierte Wort spricht die aktuelle Instanz des aktuellen -hier neu erzeugtem Objektes an und weist ihm die neuen Eigenschaften zu.
Anschließend werden diesem Objekt die Autoeigenschaften zu gewiesen, die man abfragen kann und das war es schon.
Zum Testen hier mal ein Beispiel, bewußt modifiziert. Dieses erkläre ich nicht, aber du kannst ja mal versuchen mir zu erklären, was hier passiert.
<html>
<head>
<title>Neue Objekte</title>
</head>
<body onLoad="newAuto()">
<script language="JavaScript">
<!--
function auto(marke,kilometer,verbrauch,fahrer)
{
this.marke=marke;
this.kilometer=kilometer;
this.verbrauch=verbrauch;
this.fahrer=fahrer;
}
M1=new Array("Audi","Opel","A4","A5");
V1=new Array(2,3,4,5);
function newAuto()
{for (i=0;i<4;i++)
{new auto();
auto[i]=new auto(M1[i],3000,V1[i],"Schulze");
}
alert(auto[1].marke)}
//-->
</script>
<p>Warum verzichte ich auf den Fuhrpark?</p>
<p><a href="javascript:alert(auto[3].verbrauch);">Verbrauch</a> </p>
</body>
</html>
Viele Grüße
Antje