Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung und Austausch von Wissenspunkten im Zusammenhang mit js-Funktionen

小云云
Freigeben: 2018-03-01 09:09:46
Original
1396 Leute haben es durchsucht

In js ist der Referenztyp eine Datenstruktur, 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) Definition der Funktionsdeklarationssyntax


  function sum(num1,num2){
  return num1+num2;
 }
Nach dem Login kopieren

2) Funktionsausdruck

Beachten Sie, dass nach dem Funktionsausdruck ein Semikolon steht


var sum=function(num1,num2){
   return num1+num2;
}
Nach dem Login kopieren

Verwenden Sie den Funktionskonstruktor

Der Konstruktor kann eine beliebige Anzahl von Parametern empfangen, der letzte Parameter wird jedoch immer als Funktionskörper betrachtet, während die vorherigen Parameter die Parameter auflisten


var sum=new Function("num1","num2","return num1+num2")
Nach dem Login kopieren

Natürlich ist die dritte Methode nicht freundlich 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;
}

以上执行器就会报错!
Nach dem Login kopieren

2 Die Funktion ist nicht überladen

Wenn 2 Namen mit dem Wenn eine Funktion mit demselben Namen deklariert wird, überschreibt die spätere Funktion die vorherige Funktion.


function sun(a){
 return a+100;
}
function sun(a){
 return a+200;
}

var result=sum(2)//202
Nach dem Login kopieren

3. Die internen Attribute der Funktion

umfassen diese Argumente

Keine weiteren Details

4. Funktionsattribute und -methoden

Die Funktion hat 2 Attribute, Länge und Prototyp

Länge gibt die Anzahl der benannten Parameter an, die die Funktion zu empfangen hofft.


function a(name){
 //todo
}
function b(name,age){
 //todo
}
function c(){
 //todo
}

a.length //1
b.length //2
c.length //0
Nach dem Login kopieren

Das Prototyp-Attribut 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 der 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
Nach dem Login kopieren

Es gibt keinen großen Unterschied zwischen der Call-Methode und der Apply-Methode. Der Unterschied besteht darin, dass der zweite Parameter der Aufrufmethode einzeln aufgelistet 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

Verwandte Empfehlungen:

Detaillierte Erläuterung von JS Funktionsinstanzen

Detaillierte Analyse der Entprellung und Drosselung von JS-Funktionen_Grundkenntnisse

Erklärung der Wertübergabe von JS-Funktionsparametern


Das obige ist der detaillierte Inhalt vonZusammenfassung und Austausch von Wissenspunkten im Zusammenhang mit js-Funktionen. 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