Heim >Web-Frontend >js-Tutorial >Implementierung von Funktionsüberladung und Parameterstandardwerten in JavaScript
Parameter-Standardwert bedeutet, dass, wenn beim Aufrufen einer Funktion ein tatsächlicher Parameter weggelassen wird, die Funktion dem Parameter automatisch einen Standardwert zuweist, was den Komfort und die Flexibilität des Funktionsaufrufs erheblich verbessert.
Nehmen Sie zum Beispiel die String-Abfangfunktion substr(string,start,length) in PHP. Wenn die Länge nicht angegeben ist, fängt die Funktion standardmäßig die Startposition im String ab. Wenn Sie angeben, ob die Länge angegeben ist, wird die Zeichenfolge mit der Länge ab der Startposition abgefangen. Wenn also substr('http://www.hualai.net.cn',11,6) aufgerufen wird, wird hualai verwendet zurückgegeben; Wenn der letzte Parameter, substr('http://www.hualai.net.cn',11), weggelassen wird, wird hualai.net.cn zurückgegeben.
Zum Beispiel dient im jQuery-Framework die Methode $(selector).html() dazu, den HTML-Code innerhalb des Elements abzurufen, während $(selector).html(content) den HTML-Code darin festlegt das Element. Wir wissen, dass wir in der C-Sprache Standardwerte für Funktionsparameter in der folgenden Form festlegen können:
void foo(int a, int b = 1, bool c = false);
In Java können Sie den Standardwert von Funktionsparametern durch Funktionsüberladung festlegen:
public void foo(int a){
foo(a, 1);
public void foo(int a, int b){
foo(a, b, false); >}
public void foo(int a, int b, bool c){
//Funktionsinhalt
}
Und wie legt man in JavaScript den Standardwert von Funktionsparametern wie jQuery fest? In JavaScript gibt es keine Methode, um beim Definieren einer Funktion in der C-Sprache Werte direkt nach den Parametern zuzuweisen, und es gibt auch keine Funktionsüberladung wie in Java. Dies können wir jedoch durch ein schreibgeschütztes Variablenarray mit Argumenten in JavaScript erreichen Methode wie folgt:
function foo(){
var a = arguments[0] : 1; var b = arguments[1] ? false;
//Funktionsinhalt
}
Das Obige dient dazu, festzustellen, ob der Parameter vorhanden ist. Wenn er nicht vorhanden ist, wird der Standardwert verwendet. Angehängt an eine Variable können wir eine Überladung durchführen, indem wir den Typ des Parameters beurteilen:
function foo(){
if(typeof arguments[0] == 'string') Alert('Der Parametertyp ist String');
else if(typeof arguments[0] == 'number')
Alert('Der Parametertyp ist numerisch') ;
}
oder
function foo(){
if(arguments[0].constructor == String) Alert('Der Parametertyp ist ein String') ;
else if(arguments[0].constructor == Number)
Alert('Der Parametertyp ist ein numerischer Wert');