Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über die Unterschiede in den JS-Funktionsdefinitionsmethoden

Eine kurze Diskussion über die Unterschiede in den JS-Funktionsdefinitionsmethoden

高洛峰
高洛峰Original
2016-12-08 13:53:461168Durchsuche

Es gibt zwei Möglichkeiten, Funktionen in JS zu definieren:

(1) Typische Funktionsdeklaration

function slide(arguments){
//...code
}

(2 ) Definieren eine Funktion in Form eines Funktionsausdrucks

var slide = function(arguments){
//...code
}

Obwohl die beiden oben genannten Methoden logisch äquivalent sind, gibt es dennoch einen kleinen Unterschied:

Unterschied 1: Die Funktion in Beispiel 1 wird in den Bereich geladen, bevor der Code ausgeführt wird, während sie in Beispiel 2 erst definiert wird, wenn der Code in dieser Zeile ausgeführt wird;

Unterschied 2: Funktion Die Deklaration weist der Funktion einen Namen zu, während der Funktionsausdruck eine anonyme Funktion erstellt und diese dann einer Variablen zuweist.

Siehe das folgende Beispiel:

function factorial(num){
if(num<=1){
return 1;
}
else {
return num*arguments.callee(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial);//输出factorial(){},有函数名

Wenn als Funktionsausdruck definiert

var factorial = function(num){
//...code
}
//...code
console.log(anotherFactorial);//输出function(){},匿名函数


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