2012-05-16 7 views
0
function(){ 
    alert('a function'); 
} 

내가 방화 광 자바 스크립트 컨트롤에 넣을 때. 그것은 내가 그것을 좋아 보여 위에 넣을 때 기능 문이 이름자바 스크립트 익명 함수

(function(){ 
    alert('a function'); 
}()) 

을 필요로 보여줍니다.

function(){ 
    alert('a function'); 
}() 

는 또한 기능 문이 이름을 필요로하는 기능을 실행하지 않습니다 보여줍니다. 왜?

+0

가능한 중복 [자바 스크립트 객체/함수/클래스 선언을 둘러싼 괄호 무슨 뜻 이죠?] (http://stackoverflow.com/questions/440739/what-do-parentheses-surrounding-a-javascript- object-function-class-declaration-m) – Quentin

+1

http://stackoverflow.com/a/442408/1113426 – Engineer

답변

1
function(){ 
    alert('a function'); 
} 

은 기능 선언이므로 이름이 필요합니다.

(function(){ 
    alert('a function'); 
}()) 

() 문을 표현식으로 변경하므로 정상입니다.

그리고 아래 방법을 사용할 수도 있습니다.

(function(){ 
    alert('a function'); 
})(); 

!function(){ 
    alert('a function'); 
}(); 

+function(){ 
    alert('a function'); 
}(); 
+0

! 함수와 함수의 의미는 무엇입니까? 감사합니다 – run

+0

그들은 진술을 단지 표현식으로 바꿉니다. – xdazz