MudGuard: Objekt in Objekt wird nicht angezeigt

Beitrag lesen

Hi,

		function Motor(l, z, k)
		{
			this.leistung = 1;

hier zeigt sich, warum ein einzelnes kleines Ell ungeeignet ist als Variablenname. Wird zu leicht mit einer 1 verwechselt. Das Syntaxhighlighting hier verrät es …

		function fahrzeugAusgeben()
		{
			return "Farbe: " + this.farbe + ", Geschwindigkeit: " + this.geschwindigkeit;
		}

Wie soll der Motor ausgegeben werden, wenn da nichts dafür gemacht wird? Es wird nur Farbe und Geschwindigkeit ausgegeben.

	function Fahrzeug(f, g)
		{
			this.farbe = f;
			this.geschwindigkeit = g;
		this.toString = fahrzeugAusgeben;
 	}

	var dacia = new Fahrzeug("Silber", 50, new Motor(60, 4, "Diesel"));
	document.write(dacia + "<br>");

Du übergibt einen Motor (3. Parameter) an das Fahrzeug, aber das Fahrzeug ist umweltfreundlich und will gar keinen Motor haben (der Konstruktor hat nur 2 Parameter), und baut ihn schon gar nicht ein (keine Zuweisung an eine Eigenschaft).

cu,
Andreas a/k/a MudGuard