whirlwind: Objekte und mehrere Konstruktoren?

Beitrag lesen

Objekte und mehrere Konstruktoren?

Wer kann mir verraten, warum es sich bei JavaScript so merkwürdig mit den Konstruktoren verhält?

Bei folgendem Beispiel wird immer der Konstruktor mit den zwei Parametern angsprungen?!

Normalerweise müsste doch der mit der richtigen Parametersignatur verwenden werden - so verhält es sich zumindest bei Java und C++.

Es verhält sich anscheunend so, dass immer der Konsrruktor mit den meisten Parametern benutzt wird! Das finde ich sehr unschön...

Muss man hier etwa einen workaround programmieren?

Beispiel:
---------------
Datei auto.js
---------------

/*
  *  multiple constructors
 */

function Auto() {

this.ps = 0;
  this.speed = 0;
  document.write("Konstruktor ist parameterlos!<br />");
 }

function Auto(ps) {
     this.ps = ps;
     document.write("PS gesetzt!<br />");
 }

function Auto(ps, speed) {
     this.ps = ps;
     this.speed = speed;
     document.write("PS und Speed gesetzt!<br />");
 }

--------------------
Datei autos.html
--------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
 <title>Javascript OOP: Multiple Constructors</title>
</head>
<body>
  <script type="text/javascript" src="auto.js"></script>

<script type="text/javascript">
   <!--

document.write("<h2>Javascript OOP: Multiple Constructors</h2>");

var auto1;
   auto1 = new Auto();

var auto2 = new Auto(120);

document.write("Auto#2 hat " + auto2.ps +" PS.<br />");

//-->
  </script>
</body>
</html>