Überschreiben der Javascript-Funktion Basierend auf Übergebenen Parametern
Ist es möglich, das überschreiben einer Funktion basierend auf der Anzahl der Parameter, die Sie übergeben, in es? Zum Beispiel:
function abc(name) {
document.write ('My name is' + name);
}
function abc(name,friend) {
document.write ('My name is' + name + 'and my best friend\'s name is' + friend);
}
So, in der HTML, wenn ich gerade genannt abc(george), würde es die erste version der Funktion, aber wenn ich genannt abc(george john) würde es die zweite version.
Möglicherweise gibt es andere Möglichkeiten, um zu erreichen, das Beispiel, das ich verwendet, aber ich Frage mich nur, ob das Konzept Klang in javascript.
Du musst angemeldet sein, um einen Kommentar abzugeben.
JavaScript nicht unterstützt das überladen von Funktionen.
Können Sie, jedoch:
typeof
operator immer gibt einen string zurück, auch für host-Objekte.Da es nicht hier erwähnt, ich dachte, ich würde werfen dies draußen auch. Man könnte auch mit dem arguments-Objekt, wenn Ihre einzige Absicht ist, zu überschreiben, basierend auf der Anzahl von Argumenten (wie Sie erwähnen in Ihrem ersten Satz):
Yup, in der Tat, JavaScript tut dies standardmäßig. Wenn Sie eine Funktion:
Lassen Sie das erforderliche argument und übergeben Sie den Rest in ein Objekt
Nein, Nativen Javascript nicht erlauben, zu überladen mit Funktionen.
Workaround ist einfach nicht zu senden, dass der parameter. Sie erhalten undefiniert in den letzten parameter.