Eigener Konsturktor mit opitonalem Parameter
chris
- javascript
Hallo Zusammen
Ich habe gerade einen JavaScript-Kalender auf meine Bedürfnisse umgebaut. Nun stehe ich vor folgendem Problem/Schwirigkeit.
Wie kann ich im Konstruktor einen Optionalen Parameter definieren?
Habe es folgendermassen versuche:
function KONSTERUKTOR( a, b, c, d = "" )
aber das haut nicht hin..
danke für euere Hilfe!
Gruss
Chris
Tag chris.
Wie kann ich im Konstruktor einen Optionalen Parameter definieren?
Wenn es der letzte Parameter ist, sollte es keine Schwierigkeiten geben, wenn du ihn einfach weglässt:
function konstrukt(a, b, c) {
this.a = a;
this.b = b;
if(typeof c == 'undefined') {
this.c = 'default';
}
else {
this.c = c;
}
}
var obj1 = new konstrukt(1, 2, 3);
alert(obj1.c);
// ergibt 3
var obj2 = new konstrukt(1, 2);
alert(obj2.c);
// ergibt 'default'
Sollte beispielsweise der 2. der drei Parameter optional sein, müsstest du die Funktion entsprechend anpassen und zusätzlich immer drei Parameter übergeben. Statt eines Wertes für den optionalen Parameter übergibst du dann einfach das Schlüsselwort 'undefined'.
Siechfred
Hi Chris,
ich selbst mache es in einer meiner Klassen so:
function Faq(elementId) {
// -----------------------------------------------------
// Properties
// -----------------------------------------------------
this.faqObj = document.getElementById(elementId);
this.activeQuestionObj;
this.questionClassName = (Faq.arguments.length > 1)? Faq.arguments[1] : 'question';
this.answerClassName = (Faq.arguments.length > 2)? Faq.arguments[2] : 'answer';
//.....
}
Es muß also der Parameter elementId übergeben werden, während der zweite und dritte Parameter (benutzerdefinierte CSS-Klassennamen) optional sind und ggf. mit Default-Werten belegt werden.
Ciao,
Andreas