2011-09-18 5 views
3

자바 스크립트에서 함수를 작성하는 다음과 같은 방법이 동일한 지 궁금합니다.javascript에서 함수를 정의하는 이러한 방법이 있습니까?

내게도 그들은 같은 결과를내는 것처럼 보이지만 다른 것은 다를 수 있습니다.

첫번째 방법 :

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

번째 방법 :

new function bar(){alert('ciao')}; 
+0

중복을 삭제하십시오. http://stackoverflow.com/questions/1140089/how-does-an-anonymous-function-in-javascript-work (이 질문에 젖을 수있다 : P) – Layke

+3

뺨에 혀 대답 : 차이는 두 번째가 나쁘다는 것입니다. 첫 번째 유형은 일반적으로 허용됩니다. – tjameson

답변

3

두번째는, 함수의 새로운 인스턴스를 반환한다.

그래서, 이들은 equivelent 있습니다

전통적인 방법

function bar() { 
    this.x = 5; 
}; 
var x = new bar(); 

게으른 한 줄.

var x = new function bar() { this.x = 5; }; 

유일한 차이점은 나중에 막대를 다시 사용할 수 없다는 것입니다.

나를 믿지 않으면 두 예제 모두에서 console.log(x.y);을 사용해보십시오.

첫 번째 예제는 인스턴스화되지 않은 익명의 함수이며, 방금 호출됩니다.

2

첫번째 함수를 실행하고, 그 결과를 반환한다. 두 번째 함수는 함수를 실행하고 객체를 반환합니다.

EDIT 예 :이 생성자 것처럼

enter image description here

관련 문제