Die Beispiele in diesem Artikel beschreiben Methoden und anonyme Methoden in Javascript. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Javascript-Methode (Funktion)
Deklarationsfunktion
Beginnt mit der Funktion, gefolgt vom Funktionsnamen. Im Gegensatz zu C# und Java muss Javascript den Rückgabewerttyp und den Parametertyp nicht deklarieren. Kein Rückgabewert ist undefiniert.
Ein Beispiel soll es klarer machen:
Methode ohne Parameter und ohne Rückgabewert:
function f1(){ alert('这是一个方法'); } f1();//调用方法
Methoden ohne Parameter und Rückgabewerte:
function f2(){ return 100; } var result=f2();//声明一个变量,接收f1()中的返回值 alert(result);//100
Methoden mit Parametern und Rückgabewerten:
function f3(n1,n2){ return n1+n2; } var result=f3(20,30); alert(result);//50
Hinweis 1:
Schauen Sie sich zuerst das Beispiel an:
function f1(){ alert('这是一个方法'); } alert(f1());//弹出”这是一个方法”后,还会显示undefined
Grund: Wenn in js einer Variablen kein Wert zugewiesen wird, ist sie in diesem Fall undefiniert. In diesem Fall hat f1 () keinen Rückgabewert, sodass es sich um einen unbekannten Wert (undefiniert) handelt alarm(), und natürlich ist das Popup undefiniert
Hinweis 2:
alert(f1);//不写括号,会将f1整个代码以字符串形式显示出来: function f1(){ alert('这是一个方法'); }
In JavaScript gibt es keine Methodenüberladung
Nur die zuletzt definierte Methode aufrufen:
function f1(n1,n2){ alert(n1+n2); } function f1(n1,n2){ alert(n1-n2); } f1(10,2);//8
Hinweis: Nummer undefiniert=undefiniert
function f1(n1,n2,n3){ alert(n1-n2+n3); } f1(10,2); //NaN,因为没有给n3传值,n3就是undefined, //数字加上undefined还是undefined
Hinweis beim Definieren von Methoden:
Eine benutzerdefinierte Funktion darf nicht denselben Namen haben wie die integrierte Methode:
Verwenden Sie nicht denselben Namen wie die integrierten Methoden in JS oder DOM. Verwenden Sie beispielsweise keine Funktionsnamen wie „selectAll“ und „focus“.
Hinweis zum Schreiben von Regelklammern:
Im Allgemeinen folgt beim Schreiben von geschweiften Klammern in js direkt
function f1(){ return { age:100}; } var s=f1(); alert(s.age); //undefined。s结果是undefined,undefined.age必然还是undefined
Anonyme Methode (häufig verwendet)
Warum wird die Verwendung der anonymen Methode empfohlen?1. Es gibt eine Methodenfunktion aa(){alert{'Ich bin ziemlich gutaussehend'}} in 1.js
2. Es gibt eine Methodenfunktion aa(){alert{'Ich werde immer schöner'}} in 2.js
3. Importieren Sie 1.js und 2.js nacheinander in index.html und rufen Sie aa() auf. Das Ergebnis zeigt: Ich werde immer schöner.
Fazit: Die aa()-Methode in 2.js überschreibt die aa() in 1.js
Was tun? Geben Sie keinen Methodennamen mehr an, sondern verwenden Sie eine anonyme MethodeSehen wir uns zunächst ein Beispiel für die Zuweisung anonymer Methoden zu Variablen an:
var ff=function(n1,n2){ return n1+n2; }; alert(ff(20,30));//50
var x=1; var y=0; var z=0; var add=function (n){n=n+1;return n}; y=add(x);//结果是2,先调用上面add add=function(n){n=n+3;return n;}; z=add(x);//结果是4,调用上面临近的这个add alert(y+','+z);//2,4
function aa() { alert("aaa"); return function(){alert("bbb");}; } alert(aa);//不写括号,会将aa方法的整个代码显示出来 alert(aa());//aaa,function(){alert("bbb");}; aaa就不解释了,后面那一串是作为aa()的返回值显示 alert(aa()());//aaa,bbb,undefined //下面分解上面这句进行解释 var s=aa();//aaa alert(s());//s()就是function(){alert("bbb");};首先弹出bbb,其次该方法没有返回值,故弹出undefined