Detaillierte Interpretation der Funktionsfunktion in Javascript (ausführliches Tutorial)

亚连
Freigeben: 2018-06-22 18:33:40
Original
1474 Leute haben es durchsucht

Der Editor bietet Ihnen grundlegende Lehrinhalte zu JavaScript, zum Training und zum Verständnis von Funktionsfunktionen. Lassen Sie uns gemeinsam lernen.

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 erklären ihre praktische Verwendung.

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

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

(2) Funktionsdeklaration

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

Aufgrund der Deklaration im Voraus befürwortet die erste Ausgabe die Verwendung der zweiten Methode zur Definition von Funktionen. Es gibt einen separaten Artikel zur Funktionsdeklaration im Voraus

Aber die erste Definitionsmethode macht es Es ist sehr intuitiv zu erkennen, dass add ein Zeiger auf eine Funktionsinstanz ist. Eine Variable.

Da es sich um eine Variable handelt, kann sie anderen Variablen zugewiesen, als Parameter in einer Funktion übergeben oder von einer Funktion zurückgegeben werden .

Also var add2=add3=add; now Alle drei Variablen verweisen nun auf die Referenz dieser Instanz, die beiden Funktionen add2 und add3 können ohne Beeinträchtigung verwendet werden Fügen Sie Punkte zur Referenz von Null hinzu, nachdem Sie die Referenz des Funktionsobjekts entfernt haben. Daher sind die beiden Funktionen add2 und add3 überhaupt nicht betroffen.

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

Damit die Funktion als Rückgabewert der Funktion zurückgegeben werden kann.

Da der Funktionsname nur eine Variable ist, die auf Funktionsinstanzen verweist, kommt es in JavaScript nicht zu einer Überladung von Funktionen. weil die gleichen Variablen auf die gleiche Referenzadresse verweisen.

Da die Funktion eine Instanz des Objekts ist, sollte es also Attribute und Methoden geben haben Attribute und Methoden.

Die vier wichtigeren Attributargumente, diese, Länge, Prototyp

Argumente stellen das aktuelle Funktionsparameterarray dar. Dieses Attribut ist auch etwas ganz Besonderes. Es hat auch ein Attribut namens callee . Das Attribut

arguments.callee speichert einen Zeiger, der auf die Funktionsentität mit diesem Argumentattribut zeigt (das dem Funktionsnamen entspricht).

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

Längenattribut gibt die maximale Anzahl von Parametern an, die von der aktuellen Funktion empfangen werden.

Prototyp gibt die Funktion an. Der Prototyp bedeutet, dass die Methoden der Objektinstanz vollständig gespeichert werden Mit anderen Worten, die Methoden des Prototyps werden vererbt, zum Beispiel toString() valueOf() usw.

Als nächstes schauen wir uns die Funktionstypen an

Gewöhnliche Funktionen: Einführung in die Eigenschaften gewöhnlicher Funktionen: Überschreiben mit demselben Namen, Argumentobjekte, Standardrückgabewerte usw.

function ShowName(name) { alert(name); }
Nach dem Login kopieren
Anonyme Funktion: Einführung in die Eigenschaften anonymer Funktionen: variable anonyme Funktionen, namenlose anonyme Funktionen.

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

Verschlussfunktion: Stellt die Merkmale der Verschlussfunktion vor.

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

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

So implementieren Sie Paging-Abfragen in Bootstrap4 + Vue2

Im Webpack gibt es die Umgebungskonfiguration des JQuery-Plugins -in (Ausführliches Tutorial)

So verwenden Sie Keep-Alive in vue2

So implementieren Sie die Gulp-Verpackung mit NodeJS

Das obige ist der detaillierte Inhalt vonDetaillierte Interpretation der Funktionsfunktion in Javascript (ausführliches Tutorial). 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
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!