2016-10-09 2 views
3

끔찍한 제목을 쓰고 죄송합니다. 사람들이 나에게 어떤 방향을 제시하면 앞으로 더 잘 편집 할 수 있습니다.{}())과 {})의 차이점()

내가

(function() { 
    return false; // logs false 
}()); 

and 

(function() { 
    return false; // Also returns false 
})(); 

의 차이가 무엇인지에 관해서는 주로 궁금해서, 그들은 모두 나에게 콘솔에서 동일한 결과를 제공하는 것 그러나 나는 누군가가 말할 수있는, 차이가 있어야합니다 확신합니다 저에게 차이점과 왜 다른 것을 사용하게 될까요?

답변

3

는, 그러나 기능적인 차이

없다 (당신은 자바 스크립트에서 인생의에 대한 자세한 정보가 필요하면, 좋은이 SO here. 거기) 및

(() => { 
    return false; // logs false 
    }()); 
: 화살표 기능 스타일의 인생

(() => { 
    return false; // logs false 
})(); 

작품, 그러나,이 버전을 사용

) - 괄호 안에있는

1

차이점이 없습니다. IIFE (Immediately Invoked Function Expression)를 자바 스크립트로 작성하는 데는 두 가지 다른 방법이 있습니다. 어느 쪽을 선택하든 컨벤션을 선택할 수 있습니다.

, 당신은 ES2015에있는 경우 다른 대답으로

0

IIFE가 함수의 실행 컨텍스트를 사용하여 "개인 정보"를 만들 때 다음 두 패턴 중 하나를 사용할 수 있습니다.

(function(){ /* do something */ }()); // Douglas Crockford recommends 

(function(){ /* do something */ })(); // This way works as well 

왜? 괄호의 이유는 함수 식과 함수 선언을 구별하기위한 것이므로 파서가 이미 식을 예상 할 때 제거 할 수 있습니다.

할당을 할 때이를 사용하여 코드 규칙을 코딩하는 것이 좋습니다.

+0

더글라스 크록 포드 (Douglas Crockford)는 "왜?"- 왜 그가 마지막 공을 쥐고있는 것처럼 보이는지 - 심각하게 말하면 - 나쁜 ES2015 +는 개 공이 필요합니다. 작업! –

+0

네, 저는 대회에 출전하는 사람들이 어울려 지도록하겠습니다. – Abs

관련 문제