Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung des Inhalts im Zusammenhang mit der JS-Funktion

Detaillierte Erläuterung des Inhalts im Zusammenhang mit der JS-Funktion

亚连
亚连Original
2018-06-04 11:24:131389Durchsuche

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

Verwenden Sie den Konstruktor, um eine beliebige Anzahl von Parametern zu empfangen. Der letzte Parameter wird jedoch immer als Funktionskörper betrachtet. und Die vorherigen Parameter zählen die Parameter

var sum=new Function("num1","num2","return num1+num2")

auf. 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, überschreibt die letztere Funktion 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

enthalten diese Argumente

Die Details werden nicht noch einmal beschrieben

4. Attribute und Methoden von Funktionen

Die Funktion hat zwei 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

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 „Apply“ und „Call“

Der Zweck dieser beiden Methoden besteht darin, die Funktion in einem bestimmten Bereich aufzurufen. Tatsächlich besteht sie darin, dies in der Funktion festzulegen Körper bezieht sich auf den Wert.

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 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.

Das Obige habe ich für alle zusammengestellt. Ich hoffe, es wird hilfreich sein alle in der Zukunft.

Verwandte Artikel:

So kapseln Sie wiederverwendbare Komponenten in Vue

So verwenden Sie Slots, um Slots in Vue-Inhalten zu verteilen

So erhalten Sie den Wert in select in vue.js (ausführliches Tutorial)

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Inhalts im Zusammenhang mit der JS-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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