Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript-Funktion Funktionsverständnis und praktischer Kampf

小云云
Freigeben: 2018-01-03 10:52:53
Original
1314 Leute haben es durchsucht

Funktionsfunktionen sind die Grundlage von JavaScript und ein Wendepunkt für die Realisierung von Funktionen. Durch Beispielanalysen vermitteln wir Ihnen ein tieferes Verständnis der Funktionsfunktionen und erläutern ihre praktische Verwendung. Dieser Artikel vermittelt Ihnen hauptsächlich grundlegende Lehrinhalte zu JavaScript sowie zum Training und Verständnis von Funktionsfunktionen. Lassen Sie uns gemeinsam lernen.

Funktion ist tatsächlich ein Objekt, und jede Funktion, die wir definieren, ist tatsächlich eine Instanz des Funktionsobjekts, was auch als Verweis auf eine Instanz des Funktionsobjekts verstanden werden kann.

Da es so ist Eine Instanz der Objektinstanz muss auf eine Referenz vom Funktionstyp zeigen. Da sie auf eine Speicheradresse eines Referenztyps zeigt, können Sie die von uns definierte Funktion auch einfach als Variable verstehen, die auf eine Adresse von a zeigt Referenztyp. Diese Adresse zeigt auf eine Instanz des Funktionsobjekts

Da die von uns definierte Funktion tatsächlich eine Variable ist, kann diese Funktionsinstanzadresse gleichzeitig auf mehrere Variablen verweisen Schauen Sie sich den folgenden Code an:

var add = new Function("n", "m", "return n + m");

Das Obige ist die Standardfunktionsdefinition, die aufruft Der Konstruktor des Funktionsobjekts. Die ersten N Parameter sind standardmäßig die Parameter der neuen Funktion, bis der letzte Parameter als Funktionskörper der neuen Funktion betrachtet wird Es ist sehr intuitiv zu erkennen, dass die Add-Variable auf einen Funktionstyp zeigt Beispiel, aber diese Benennungsmethode ist sehr umständlich und entspricht:

(1) Funktionsausdruck

(2) Funktionsdeklaration

var add=function(n,m){
return n+m;
}
Nach dem Login kopieren

Da Deklarationen in der JavaScript-Sprache fortgeschritten sind, befürwortet die erste Ausgabe die Verwendung der zweiten Methode zur Definition von Funktionen A Über Funktionsdeklarationen wird im Voraus ein separater Artikel geschrieben

Aber die erste Definitionsmethode macht es sehr intuitiv zu erkennen, dass add eine Variable ist, die auf eine Funktionsinstanz zeigt
function add(n,m){
return n+m;
}
Nach dem Login kopieren

Da es sich um eine Variable handelt, Es kann anderen Variablen zugewiesen und als Parameter in der Funktion übergeben werden.

Also var add2=add3=add; jetzt zeigen die drei Variablen auf die Referenz dieser Instanz , jetzt add=null; In Zukunft können die beiden Funktionen add2 und add3 ohne Einschränkungen verwendet werden. Die Auswirkung liegt darin, dass add den Verweis auf das Funktionsobjekt entfernt und auf den Nullverweis verweist. Dies hat also keine Auswirkungen auf add2 und add3 Funktionen überhaupt.

Die Funktion kann also als Parameter anderer Funktionen übergeben werden.

Die Funktion kann also als Rückgabewert der Funktion zurückgegeben werden.

Da der Funktionsname nur eine Variable ist, die auf die Funktionsinstanz verweist, kommt es in JavaScript nicht zu einer Überladung von Funktionen, da dieselbe Variable auf dieselbe Referenzadresse verweist. Die letzte Darstellung ist immer noch dieselbe Funktion Da eine Funktion eine Instanz eines Objekts ist, sollte sie über Attribute und Methoden verfügen.

sind die vier Eigenschaftenargumente, dies, die Länge und der Prototyp 🎜>arguments stellt das Parameterklassenarray der aktuellen Funktion dar. Es gibt auch eine Eigenschaft namens callee,

arguments.callee property Es wird ein Zeiger gespeichert, der auf die Funktionsentität zeigt Arguments-Attribut (entspricht dem Funktionsnamen)

Dieses Attribut ist die aktuelle Umgebung, ähnlich wie in C#, und gibt den aktuellen Kontext an

Das Längenattribut gibt die maximale Anzahl der empfangenen Parameter an durch die aktuelle Funktion

Prototyp gibt den Prototyp der Funktion an, was bedeutet, dass die Methoden der Objektinstanz vollständig gespeichert werden. Mit anderen Worten, alle Methoden auf dem Prototyp werden geerbt. Zum Beispiel toString() valueOf () usw.

Als nächstes werfen wir einen Blick auf die Arten von Funktionsfunktionen

Gewöhnliche Funktionen: Einführung in die Merkmale gewöhnlicher Funktionen: gleichnamige Abdeckung, Argumente Objekte, Standardrückgabewert usw.

Anonyme Funktionen: Einführung in die Merkmale anonymer Funktionen: variable anonyme Funktionen, namenlose anonyme Funktionen.



function ShowName(name) {
 alert(name);
}
Nach dem Login kopieren
Verschlussfunktion: Stellen Sie die Merkmale der Verschlussfunktion vor.



Verwandte Empfehlungen:
//变量匿名函数,左侧可以为变量、事件等
var anonymousNormal = function (p1, p2) {
 alert(p1+p2);
}
anonymousNormal(3,6);//输出9
Nach dem Login kopieren

Detaillierte Einführung der Funktion „register_shutdown_function“


function funA() {
 var i = 0;
 function funB() { //闭包函数funB
  i++;
  alert(i)
 }
 return funB;
}
var allShowA = funA(); //全局变量引用:累加输出1,2,3,4等
 
function partShowA() {
 var showa = funA();//局部变量引用:只输出1
 showa();
}
Nach dem Login kopieren
Javascript-Funktionsfunktion Verständnis und praktische Praxis_Grundkenntnisse

Detaillierte Erläuterung der Instanzverwendung der Funktionsbindungsmethode in Javascript

Das obige ist der detaillierte Inhalt vonJavaScript-Funktion Funktionsverständnis und praktischer Kampf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!