Eine Funktion ist ein wiederverwendbarer Codeblock, der von einem Ereignis angetrieben oder ausgeführt wird, wenn er aufgerufen wird.
JScript unterstützt zwei Funktionen: Eine ist eine Funktion in der Sprache (wie z. B. eval ()) und der andere wird von selbst erstellt.
Eine in einer JavaScript -Funktion (var) deklarierte Variable ist eine lokale Variable, sodass nur innerhalb der Funktion zugegriffen werden kann. (Der Umfang dieser Variablen ist lokal).
Sie können lokale Variablen mit demselben Namen in verschiedenen Funktionen verwenden, da nur Funktionen, die die Variable deklariert haben, erkannt werden können.
So rufen Sie eine Funktion auf
1. Normaler Anruf: FunktionName (tatsächlicher Parameter ...)
2. Rufen Sie Variablen auf, die auf die Funktion zeigen:
var myvar = Funktionsname;
myvar (tatsächliche Parameter ...);
Gibt die Funktion zurück
1. Wenn die Funktion keinen expliziten Rückgabewert hat, ist der zurückgegebene Wert "undefiniert".
2. Wenn die Funktion einen Rückgabewert hat, gibt sie, was auch immer der Rückgabewert ist, zurück.
Wir können die Funktion an den Ort zurückgeben, an dem sie unter Verwendung der Return -Anweisung aufgerufen wird.
Bei Verwendung der Rückgabeanweisung stoppt die Funktion die Ausführung und gibt den angegebenen Wert zurück.
Eine Funktion gibt normalerweise einen eindeutigen Wert zurück, daher kann dieser Wert auch eine weitere Funktion sein:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var box = function () {
var a = 1;
return function () {
Alarm (a ++)
}
}
alert (box ()); // "function () {alert (a ++)}" taucht auf
</script>
Hier weisen wir nur den Rückgabewert einer Variablen zu, und dann können wir ihn wie eine normale Funktion nennen:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var box = function () {
var a = 1;
return function () {
Alarm (++ a)
}
}
var newfunc = box ();
newfunc (); // 2
</script>
Wenn Sie möchten, dass die zurückgegebene Funktion sofort ausgeführt wird, können Sie auch Box () () verwenden, um diesen Code auszuführen.
Alle ECMascript -Funktionen werden von Werten übergeben, was bedeutet, dass die Parameter nicht mit Referenz übergeben werden.
PS: Wenn es eine Pass-by-Referenz gibt, ist die Variable in der Funktion eine globale Variable und kann auch extern zugegriffen werden.
(1) Werttypen: numerisch, boolean, null, undefiniert.
(2) Referenztyp: Objekt, Array, Funktion.
Referenztypwert: Bezieht sich auf die im Heap -Speicher gespeicherten Objekte, was bedeutet, dass die Variable eigentlich nur ein Zeiger ist, der einen anderen Speicherort im Speicher ausführt, und das Objekt wird von diesem Ort gespeichert.
Erstellen Sie anonyme Funktionen
Die Codekopie lautet wie folgt:
Funktion(){
kehre 'Lee' zurück; // einzelne anonyme Funktionen können nicht ausgeführt werden, und selbst wenn sie ausgeführt werden können, können sie nicht aufgerufen werden, weil es keinen Namen gibt
}
Es gibt viele Verwendungen dieser anonymen Funktion in JQuery. Deklarieren Sie eine anonyme Funktion direkt und verwenden Sie sie sofort. Der Vorteil der Verwendung anonymer Funktionen besteht darin, dass sie vermeiden können, eine Funktion zu definieren, die nicht einmal verwendet wird, und es ist frei von dem Problem, Konflikte zu benennen. Es gibt kein Konzept des Namespace in JS, daher ist es einfach, Funktionsnamenkonflikte zu haben. Sobald der Namenskonflikt hergestellt ist, wird der letzte erklärt, dass man sich durchsetzt.
Führen Sie anonyme Funktionen durch Selbstaussetzung aus:
Die Codekopie lautet wie folgt:
// Anonyme Funktionen durch Selbstausbau ausführen
<script type = "text/javaScript">
(function () {// (anonyme Funktion) (); Einlegen anonymer Funktion in die ersten Klammern und führen Sie in den zweiten Klammern aus.
Alert ('Lee');
}) ();
</script>
Weisen Sie der Variablen den Rückgabewert der anonymen Funktion:
Die Codekopie lautet wie folgt:
// Weisen Sie den Rückgabewert der selbst ausgestellten anonymen Funktion der Variablen zu
<script type = "text/javaScript">
var box = (function () {
Alert ('Lee');
}) (); // popt "Lee";
Alarm (Box); // Undefined taucht auf. Wenn Alert (Box ()) geschrieben ist, taucht nur ein "Lee" auf
</script>
Übergabe von Parametern für selbstausschreibende anonyme Funktionen:
Die Codekopie lautet wie folgt:
// die Parameterübertragung anonymer Funktionen selbst beibehalten
<script type = "text/javaScript">
(Funktion (Alter) {
Alarm (Alter);
}) (100); // popt 100
</script>
JavaScript erstellt dynamische Funktionen:
JavaScript unterstützt das Erstellen dynamischer Funktionen. Dynamische Funktionen müssen durch Funktionsobjekte definiert werden (Funktion ist ein Objekt in JavaScript, das festgelegt und unverändert ist. Es sieht vor, dass das "f" des Funktionsobjekts aktiviert werden muss. Wenn es sich um eine Funktion handelt, wissen wir, dass es ein Schlüsselwort ist, das bei der Definition der Funktion: Funktion Funname (x, y) ist, wenn f -Funktion (wenn f) verwendet wird.
Das grundlegende Format zum Erstellen dynamischer Funktionen: var variable name = new Function ("Parameter 1", "Parameter 2", "Parameter n", "Ausführungsanweisung");
Schauen Sie sich den folgenden Code an:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var square = neue Funktion ("x", "y", "var sum; sum = x+y; return sum;");
Das Ergebnis von Alarm ("Quadrat (2,3) ist:"+Quadrat (2,3)); // Das Ergebnis von Quadrat (2,3) ist: 5
</script>
Square ist eine dynamisch erstellte Funktion. Jeder Teil des Inhalts in den Klammern nach dem Funktionsobjekt muss sich in Form einer Zeichenfolge befinden, dh es muss in Zitate ("" oder '' eingeschlossen sein.
Dieser Code:
var square = neue Funktion ("x", "y", "var sum; sum = x+y; return sum;");
Und der folgende Code:
Die Codekopie lautet wie folgt:
Funktion Square (x, y) {
var sum;
sum = x+y;
Rückgabesumme;
}
Es ist genau das gleiche, außer dass eine dynamische Funktion und die andere eine statische Funktion ist.
Warum teilen wir den Code in kleine Code -Teile auf? Der Vorteil der Aufteilung einer Zeichenfolge in mehrere unabhängige Zeichenfolgen besteht darin, dass wir die Funktion der Funktion jederzeit ändern können, indem wir einige der Zeichenfolgen ändern.
Rückruffunktion
Ein Rückruf ist der aufrufende Prozess einer Funktion. Dann verstehen Sie diesen Anrufprozess. Funktion A hat einen Parameter, bei dem es sich um eine Funktion b handelt. Wenn die Funktion A ausgeführt wird, wird die Funktion B ausgeführt. Dann wird dieser Vorgang als Rückruf bezeichnet.
Tatsächlich ist Chinesisch auch leicht zu verstehen: Rückrufe, Rückrufe und Rückrufe. Nachdem die Funktion A beendet wurde, rufen Sie später B -Funktion B später auf.
Hier muss klar sein: Die Funktion B wird in die Funktion A in Form eines Parameters übergeben, so dass Funktion B als Rückruffunktion bezeichnet wird.
Die meisten Effektfunktionen in JQuery beinhalten Rückruffunktionen. JQuery -Effektfunktion
Zum Beispiel:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
$ ("div"). Show (1000, function () {
// Rückruffunktion
});
</script>
Hier kann die Rückruffunktion durch eine Instanz ersetzt werden:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
$ ("div"). Show (1000, function () {
console.log ("Hallo Welt")
});
</script>
Der Rückruf ist tatsächlich, wenn eine Funktion ausgeführt wird, die jetzt ausgeführte Funktion ist die sogenannte Rückruffunktion. Wie wäre es damit? Es ist leicht zu verstehen ...
Der Unterschied zwischen Methoden und Funktionen
Die Codekopie lautet wie folgt:
var arr = [1,2,3,4,5]
var a = 12; // Variable: Kostenlos
arr.a = 5; // Attribut: gehört zu einem Objekt
Funktion show () // Funktion: Kostenlos
{
alarm ('a');
}
arr.fn = function () // Methode: gehört zu einem Objekt
{
alarm ('b');
}
Tatsächlich ist eine Methode eine Funktion, aber eine Methode hat ein Objekt, zu dem sie gehört.
Wie wir wissen, Funktionen, um auf Ereignisse zu klicken
Grammatik:
$ (Selector) .Click (Funktion)
Parameterbeschreibung
Funktion ist optional. Gibt die Funktion an, die ausgeführt wird, wenn das Klickereignis auftritt.
Diese Form ist oft in JQuery zu sehen. Es verwendet die Funktion als Parameter, um der Methode einen Ereignishandler hinzuzufügen.
JS Globale Funktion
Globale Funktionen sind kein Konzept mit Eigenschaften oder Methoden integrierter Objekte. Die globale Funktion gehört nicht zu einem integrierten Objekt.
JavaScript enthält die folgenden 7 globalen Funktionen, um einige häufig verwendete Funktionen auszufüllen:
Escape (), Eval (), isfinite (), isnan (), Parsefloat (),
ParseInt (), unabgroß ().
Mehrere Funktionen von Funktionen
Verwenden Sie als Klassenkonstruktor
Die Codekopie lautet wie folgt:
Funktion class () {}
class.Prototype = {};
var item = new class ();
Als Schließung verwendet
Die Codekopie lautet wie folgt:
(Funktion(){
// unabhängiger Bereich
}) ();
Als Konstruktor genannt
Der sogenannte Konstruktor soll durch diese Funktion ein neues Objekt erstellen.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktionstest () {
this.x = 10;
}
var obj = neuer Test ();
Alarm (obj.x); // Pop 10;
</script>
Der neue Operator kann verwendet werden, um vordefinierte Konstruktoren wie Object (), Date () und Funktion () zum Erstellen und Initialisieren von Objekten zu kombinieren. Objektorientierte Programmierung ist eine leistungsstarke Funktion der Fähigkeit, benutzerdefinierte Konstrukteure zu definieren, um benutzerdefinierte Objekte zu erstellen, die in Skripten verwendet werden. Es wird ein benutzerdefinierter Konstruktor erstellt, so dass Objekte mit definierten Eigenschaften erstellt werden können. Im Folgenden finden Sie ein Beispiel für eine benutzerdefinierte Funktion (beachten Sie die Verwendung dieses Schlüsselworts).
Die Codekopie lautet wie folgt:
Funktionskreis (xpoint, ypoint, radius) {
this.x = xpoint; // x Koordinate der Mitte des Kreises.
this.y = ypoint; // die y -Koordinate der Mitte des Kreises.
this.r = radius; // der Radius des Kreises.
}
Wenn Sie den Kreiskonstruktor aufrufen, werden der Wert des Mittelpunkts und des Radius des Kreises angegeben (alle diese Elemente sind erforderlich, um ein eindeutiges kreisförmiges Objekt vollständig zu definieren). Am Ende enthält das Kreisobjekt drei Eigenschaften. Hier erfahren Sie, wie Sie ein Kreisobjekt veranschaulichen.
var acircle = neuer Kreis (5, 11, 99);
Der Vorteil der Verwendung einer Konstruktorfunktion besteht darin, dass sie beim Erstellen eines Objekts einige Parameter empfangen kann.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktionstest (Name) {
this.occupation = "codierer";
this.name = name;
this.whoareyou = function () {
Gibt "Ich bin" + this.name + "zurück und ich bin ein" + this.occupation;
}
}
var obj = neuer Test ('trigkit4'); // Erstellen Sie verschiedene Objekte mit demselben Konstruktor
var obj2 = neuer Test ('Student');
obj.whoareyou (); // "Ich bin Trigger4 und ich bin eine Ecke"
obj2.Whoareyou (); // "Ich bin Student und ich bin eine Ecke"
</script>
Nach der Konvention sollten wir den ersten Buchstaben der Konstruktorfunktion nutzen, um ihn erheblich von der allgemeinen Funktion zu unterscheiden.
Die folgenden zwei Formen der Definition von Funktionen sind gleichwertig.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var test = function () {
alarm ("Hallo Welt");
}
ALERT (typeof (test)); // Ausgangsfunktion
</script>
Hier ist ein variabler Test, dessen Anfangswert einer Funktion Entität zugeordnet ist
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktionstest () {
alarm ("Hallo Welt");
}
ALERT (typeof (test)); // Ausgangsfunktion
</script>
Schauen Sie sich das folgende Funktionsformular für definierende Funktionen an:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktionstest () {
alarm ("Hallo Welt");
};
test (); // Es gibt tatsächlich Hallo aus, nicht wahr?
Funktionstest () {
alarm ("Hallo");
};
test (); // Nur, Hallo ist ausgegeben
</script>
Offensichtlich hat die erste Funktion nicht funktioniert, nicht wahr? Wir wissen, dass die JavaScript -Parsing -Engine keine Codezeile nach Zeile ausführt, sondern Code piept für Stück ausführt. In der Analyse und Ausführung desselben Programms werden zuerst die Funktionsanweisungen der Definitionsformel ausgeführt, sodass die erste definierte Codelogik von der zweiten überschrieben wurde, sodass dieselbe Funktion nur zweimal ausgeführt wird.
Funktion als Wert
Funktionen sind nicht nur eine Syntax, sondern auch ein Wert in JS. Das heißt, die Funktion kann einer Variablen zugeordnet werden, das in einem Objekt eines Objekts oder einem Element eines Arrays gespeichert und als Parameter in eine andere Funktion übergeben werden.
Der Name einer Funktion ist tatsächlich unsichtbar, es ist nur der Name einer Variablen, die sich auf das Funktionsobjekt bezieht
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktion Square (x, y) {
return x*y;
}
var s = quadratisch; // s und quadratisch beziehen sich auf dieselbe Funktion
Quadrat (2,3); // 6
S (2,4); // 8
</script>
Neben der Zuweisung von Funktionen an Variablen können auch Funktionen den Eigenschaften der Objekte zugewiesen werden. Wenn Funktionen als Attribute von Objekten bezeichnet werden, werden Funktionen als Methoden bezeichnet.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var obj = {quadratisch: function (x, y) {// Objektdirekte Menge
return x*y;
}};
var ect = obj.square (2,3);
</script>
Prototypattribut
Jede Funktion enthält ein Prototyp -Attribut, das auf einen Verweis auf ein Objekt verweist, das als Prototypobjekt bezeichnet wird.
Siehe: JavaScript Learning Notes (v) Prototyp und Prototyp -Kette
Erweiterte Funktionen
Die Funktion höherer Ordnung ist hier nicht die Funktion höherer Ordnung im hohen Zahlen. Die sogenannte Funktion höherer Ordnung ist eine Funktion, die die Funktion betreibt. Es empfängt eine oder mehrere Funktionen als Parameter und gibt eine neue Funktion zurück.