2013-01-22 4 views
-1

가능한 중복 :
JavaScript: var functionName = function() {} vs function functionName() {}
What is the difference between a function expression vs declaration in Javascript?기능 선언

자바 스크립트 기능을 선언하는 올바른 방법은 무엇입니까? codeacademy.com에서

내가 이런 식으로 가지고 :

var someFunction = function(paramA, paramB){ 
    // do some function here 
} 

을하지만 프로그램 내 기본은 PHP이기 때문에, 나는이 방법으로 함수를 선언 선호 :

우려는 무엇 난입니다
function someFunction(paramA, paramB){ 
    // do some function 
} 

어느 쪽이 기능을 선언하는 것이 좋을지 모르겠지만, 선호하는 방법이 어떤 결과를 가져올 지 걱정됩니다.하지만 NetBeans Code Navigator가 모든 기능을 읽을 수 있기 때문에 그렇게 많이 좋아합니다.

Netbeans Code Navigator

+1

기술적으로 두 번째 것만 선언입니다. Diodeus가 제안한 사본을보십시오. – bfavaretto

답변

2

모두 허용됩니다. 사실, 당신도 할 수 있습니다 : 당신이 다음 foo()를 호출 할 경우, 콘솔에서 "bar"를 볼 수 있습니다

foo = function bar() { 
      console.log(arguments.callee.name); 
}; 

.

첫 번째 방법은 익명의 함수를 만들어 변수에 할당합니다.

두 번째 방법은 명명 된 함수를 만들어 현재 범위 내에 배치합니다.

세 번째 방법은 명명 된 함수를 만들고 변수에 할당합니다. 그러나 이번에는 이름이 해당 기능의 범위 내에 만 존재합니다.

이름이 (function name() {}) 인 함수를 선언하면 재귀 알고리즘을 구현하는 데 필요할 수 있으므로 내부에서 함수를보다 쉽게 ​​호출 할 수 있다는 이점이 있습니다. 그렇지 않으면 arguments.callee.name을 사용하여 함수 자체를 호출해야하지만 이는 MDN에 대해 경고됩니다.

이 모두는 오래간만에 받아 들여질 수있는 방법이며, 의심 스러울 경우 명명 된 함수를 사용하는 것이 잘못 될 수는 없습니다.