2010-08-03 5 views
2

나는 그 특정한 경우에자바 스크립트에서 var foo = function foo (i) {...}를 사용하는 동기 또는 장점은 무엇입니까?

var foo = function foo(param) { 
    ... 
} 

같은 일을하는

In Javascript, why write "var QueryStringToHash = function QueryStringToHash (query) { ... }"?

의 질문에 대해 답 것을 볼, 왜 그 대신

function foo(param) { 
    ... 
} 
를 사용하는

? 그 일을하는 데있어 장점이나 동기는 무엇입니까?

+2

[ "일반적인"기능 대 JavaScript의 함수 변수] 가능한 복제본 (http://stackoverflow.com/questions/1333830/usual-functions-vs-function-variables-in-javascript) –

+3

[this] (http://yura.thinkweb2.com/named-function-expressions/) –

+0

당신이 놓친 것 같습니다 :'var foo = function (param) {...}'. 그것과 주된 함수 표현식을 사용하는 주요 차이점은 @ Daniel의 링크에서 언급 한) niceness와 재귀 (능숙한 경우에만 언급 됨)를 디버깅하는 것입니다. –

답변

0

다음 코드를 사용하면 첫 번째 예제에서는 foo이라는 함수를 만들고 두 번째 예제에서는 익명 함수를 만든 다음 bar 변수에 할당합니다. 스타일 외에도 기본 차이점은 코드에서 정의하기 전에 foo을 호출 할 수 있다는 것입니다 (함수의 이름이기 때문에). 그렇지 않은 경우 bar은 할당을 받기 전에 정의되지 않은 변수이므로 이전에 사용할 수 없습니다.

var foo_result = foo(123); // ok 
function foo(param) { /* ... */ } 

var bar_result = bar(123); // error: undefined is not a function 
var bar = function(param) { /* ... */ } 
var bar_result = bar(123); // ok 

@Pekka의 제안 사항을 읽어 보시기 바랍니다.