Heim >Web-Frontend >js-Tutorial >JavaScript-Serie für Fortgeschrittene – Funktionsdeklarationen und Ausdrücke

JavaScript-Serie für Fortgeschrittene – Funktionsdeklarationen und Ausdrücke

黄舟
黄舟Original
2017-02-08 10:00:361237Durchsuche
  • Funktionsdeklaration

  • Funktionszuweisungsausdruck

  • Zuweisungsausdruck der benannten Funktion


Funktionen sind erstklassige Objekte in JavaScript, was bedeutet, dass sie wie jeder andere Wert weitergegeben werden können. Eine häufige Verwendung besteht darin, eine anonyme Funktion als Rückruffunktion an eine asynchrone Funktion zu übergeben.

Funktionsdeklaration

function foo() {}

Die obige Methode wird vor der Ausführung analysiert (gehievt), sodass sie überall im aktuellen Kontext vorhanden ist, auch wenn sie oberhalb des Funktionsdefinitionskörpers aufgerufen wird. Das ist richtig zu.

foo(); // 正常运行,因为foo在代码运行前已经被创建
function foo() {

Funktionszuweisungsausdruck

var foo = function() {};

In diesem Beispiel wird der Variablen foo eine anonyme Funktion zugewiesen.

foo; // 'undefined'
foo(); // 出错:TypeError
var foo = function() {};

Da var eine Deklarationsanweisung definiert, wird die Variable foo analysiert, bevor der Code ausgeführt wird, sodass die Variable foo bereits definiert wurde, wenn der Code ausgeführt wird.

Da die Zuweisungsanweisung jedoch nur zur Laufzeit ausgeführt wird, ist der Wert von foo standardmäßig auf undefiniert, bevor der entsprechende Code ausgeführt wird.

Zuweisungsausdruck einer benannten Funktion

Ein weiterer Sonderfall besteht darin, die benannte Funktion einer Variablen zuzuweisen.

var foo = function bar() {
    bar(); // 正常运行
}
bar(); // 出错:ReferenceError

bar ist außerhalb der Funktionsdeklaration unsichtbar, da wir die Funktion foo zugewiesen haben, sie ist jedoch immer noch innerhalb von bar sichtbar. Dies liegt an der Benennungsverarbeitung von JavaScript. Funktionsnamen sind innerhalb von Funktionen immer sichtbar.

Hinweis: In IE8- und niedrigeren Browsern ist bar auch extern sichtbar, da der Browser den benannten Funktionszuweisungsausdruck falsch analysiert und ihn in zwei Funktionen foo und bar analysiert


Das Obige ist der Inhalt der erweiterten JavaScript-Reihe – Funktionsdeklarationen und Ausdrücke. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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