2010-02-10 5 views
9

에서 (함수() {...}를)()를 사용의 이점은 무엇입니까 다음 코드 구조는 함수를 만드는 것 자바 스크립트

(function(){var l=this,g,y=l.jQuery,p=l.$,...})()

를 사용하는 것이 JQuery와에 주목하고, 불러라.

이 접근법을 사용하는 것보다 인라인 함수의 내용을 사용하면 어떤 이점이 있습니까?

+1

중복에 대한 읽을 수 있습니다 : http://stackoverflow.com/questions/592396/what-is-the-purpose-of-a-self-executing-function-in-javascript –

+0

이를 하나뿐 : http://stackoverflow.com/questions/631187/javascript-scope-and-closure 문제는 이러한 질문/답변의 발견 가능성이 좋지 않다는 것입니다. 내가 아는 모두 "[javascript] (function()"인 경우, 검색은 유용한 것을 찾지 못합니다. – Alan

답변

7

코드의 다른 부분과의 충돌을 막기 위해 클로저를 만듭니다. 이 참조 :

이 특히 편리 당신이 $() 방법을 사용하는 다른 라이브러리를 가지고 있고 또한 jQuery를 함께 있음을 사용할 수있는 능력을 유지해야합니다. 그럼 당신은 이와 같은 클로저를 만들 수 있습니다 : 그것은 함수의 내부의 지역 변수와 작업을 할 수 있습니다

(function($) { 
    // $() is available here 
})(jQuery); 
4

다른 범위의 라이브러리를 덮어 쓰더라도 변수 범위를 만들고 특히 jQuery에 바인딩하기 위해 예를 들어 $을 정의합니다. 그것을 익명의 네임 스페이스라고 생각하십시오.

var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...}; 
foo(); 

그러나 더 간단하고 전역 변수를 필요가 없습니다

0

은 그냥 같아요.

0

, 대신 글로벌 것들로 변환 할 필요없이.

1

자체 호출 익명 함수를 사용하면 로컬 범위를 만들 때 매우 효율적이며 직접 자체를 호출합니다.

당신은 그것을 here