2012-06-03 3 views
0

test.js이 허용 (매우 무의미)된다JavaScript에서 최상위 익명 함수가 허용되지 않는 이유는 무엇입니까?

1 + 2; 
(function() {}); 

노드로 실행시 :

$ node test.js 
$ 

(괄호)없이 function() {}는, 예를 들어, 다른 상황에서 허용되는 형태 다른 함수에 인수로서.

왜 JavaScript 파일의 최상위 레벨에서 다음이 허용되지 않습니까? function 시작

function() {}; 
+2

왜 이것을 필요로합니까? 핸들이없는 이름없는 함수는 아무 것도 없습니다! –

+0

가능한 복제본 [왜 자바 스크립트에서 호출하기 전에 괄호 안에 익명 함수를 포함해야합니까?] (http://stackoverflow.com/questions/8583145/why-need-i-wrap-anonymous-function-in-parenthesis-before -calling-it-in-javascrip) –

+0

@ EmilVikström 나는 확실히 그것을 필요로하지 않는다. 나는 그것이 왜 그렇게 작동하는지 궁금해합니다. –

답변

4

성명 기능 입니다.
함수 명령문의 이름을 지정해야합니다. (그들은 그 범위에서 선언문을 작성하기 때문에)

+0

나는 정확한 단어를 찾기 위해 정확한 단어를 찾고 있었다. – qwertymk

+1

* 함수 선언 * afaik가 될 것이다. –

+0

@FelixKling : Firefox에 따르지 않음 :'SyntaxError : 함수 문장에 이름이 필요함' – SLaks

관련 문제