Dieser Artikel analysiert kurz die wichtigen Wissenspunkte im Zusammenhang mit Funktionen in JS. Freunde, die sich dafür interessieren, können darauf verweisen.
Sie müssen wissen, dass in js der Referenztyp eine Datenstruktur ist, einschließlich 5 Referenztypen, nämlich Objekt, Daten, Array. Bitte geben Sie den Code gExp, Funktion ein. Heute werden wir über die Datenstruktur von Function sprechen.
In js sind Funktionen tatsächlich Objekte und jede Funktion ist eine Instanz des Funktionstyps. Wie andere Referenztypen verfügen sie über Eigenschaften und Methoden.
1. Es gibt mehrere Möglichkeiten, Funktionen zu definieren
1) Funktionsdeklarationssyntaxdefinition
function sum(num1,num2){ return num1+num2; }
2) Funktionsausdruck
Beachten Sie, dass nach dem Funktionsausdruck ein Semikolon steht.
var sum=function(num1,num2){ return num1+num2; }
Verwenden Sie den Funktionskonstruktor
Mit dem Konstruktor können Sie eine beliebige Anzahl von Parametern empfangen, der letzte Parameter ist jedoch immer vorhanden gesehen wird zum Funktionskörper, und die vorherigen Parameter enumerieren die Parameter
var sum=new Function("num1","num2","return num1+num2")
Natürlich ist die dritte Methode nicht benutzerfreundlich und wird nicht empfohlen.
Funktionsnamen sind nur Zeiger auf Funktionen, daher unterscheiden sich Funktionsnamen nicht von anderen Variablen, die Objektzeiger enthalten. Das heißt, eine Funktion kann mehrere Namen haben.
Was ist hier der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck?
Wenn der Parser Daten in die Ausführungsumgebung lädt, behandelt er Funktionsdeklarationen und Funktionsausdrücke unterschiedlich. Der Parser liest zunächst die Funktionsdeklaration und macht den Funktionsdeklarationscode vor jedem Code aufrufbar. Dies nennen wir normalerweise das Heben von Funktionsdeklarationen. Funktionsausdrücke sind unterschiedlich. Sie müssen warten, bis der Funktionsparser den Codeblock ausführt, in dem sie sich befinden, bevor sie tatsächlich ausgeführt werden. Vergleichen Sie die folgenden 2 Beispiele
console.log(sum(10,10)); function sum(n1,n2){ return n1+n2; } 以上代码会正常执行 再看! console.log(sum(10,10)); var sum=function(n1,n2){ return n1+n2; } 以上执行器就会报错!
2. Funktionen werden nicht überladen
Wenn zwei Funktionen mit demselben Namen deklariert werden, ist das Ergebnis die letztere Funktion überschreibt die vorherige Funktion.
function sun(a){ return a+100; } function sun(a){ return a+200; } var result=sum(2)//202
3. Die internen Attribute der Funktion
umfassen diese Argumente
Die Details werden nicht beschrieben
4. Funktionsattribute und -methoden
Die Funktion hat 2 Attribute, Länge und Prototyp
Länge gibt an, dass die Funktion hofft um die benannte Parameternummer zu erhalten.
function a(name){ //todo } function b(name,age){ //todo } function c(){ //todo } a.length //1 b.length //2 c.length //0
Das Prototypattribut ist für Referenztypen sehr wichtig und wird speziell erläutert, daher werde ich hier nicht auf Details eingehen.
Jede Funktion enthält zwei nicht geerbte Methoden zum Anwenden und Aufrufen
Der Zweck dieser beiden Methoden besteht darin, die Funktion in einem bestimmten Bereich aufzurufen, der eigentlich darin besteht, die Funktion festzulegen Wert, auf den sich dieser im Körper bezieht.
Zuerst. Die apply()-Methode empfängt zwei Parameter, einer ist der Bereich, in dem die Funktion ausgeführt wird, und der andere ist das Parameter-Array. Der zweite Parameter kann eine Instanz des Arrays oder Argumente sein.
function sum(num1,num2){ return num1+num2; } function test1(a,b){ return sum.apply(this,arguments); } function test2(c,d){ return sum.apply(this.[c,d]); } console.log(test1(1,1)) //2 console.log(test2(1,1)) //2
Methode aufrufen und Methode anwenden Kein großer Unterschied. Der Unterschied besteht darin, dass der zweite Parameter der Aufrufmethode einzeln übergeben werden muss.
Der größte Vorteil der Verwendung von „call“ und „apply“ zur Erweiterung des Umfangs besteht darin, dass das Objekt an keine Methode gekoppelt ist.
Das Obige ist das, was ich für alle zusammengestellt habe alle in der Zukunft.
Verwandte Artikel
So implementieren Sie die todolist-Funktion in nativem JavaScript
So verwenden Sie FileReader in JS zur lokalen Implementierung Hochladen von Bildern Vorschaufunktion
So fügen Sie MP3-Audiodateien mit Vue hinzu
Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zur Verwendung von isPlainObject() in jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!