JS에서 함수를 정의하는 방법에는 두 가지가 있습니다.
(1) 일반적인 함수 선언
function slide(arguments){ //...code }
(2) 함수 표현식 형태로 함수를 정의
var slide = function(arguments){ //...code }
위의 두 가지 방법은 논리적으로 동일하지만 여전히 약간의 차이점이 있습니다.
차이점 1: 예제 1의 함수는 코드가 실행되기 전에 범위에 로드되는 반면, 예제 2에서는 코드가 해당 줄까지 실행될 때까지 정의되지 않습니다.
차이점 2: 함수 선언은 함수에 이름을 할당하는 반면, 함수 표현식은 익명 함수를 생성한 다음 익명 함수를 변수에 할당합니다.
아래 예를 살펴보세요.
function factorial(num){ if(num<=1){ return 1; } else { return num*arguments.callee(num-1); } } var anotherFactorial = factorial; factorial = null; console.log(anotherFactorial);//输出factorial(){},有函数名 若是以函数表达式定义 var factorial = function(num){ //...code } //...code console.log(anotherFactorial);//输出function(){},匿名函数