에서 (함수() {...}를)()를 사용의 이점은 무엇입니까 다음 코드 구조는 함수를 만드는 것 자바 스크립트
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
이 접근법을 사용하는 것보다 인라인 함수의 내용을 사용하면 어떤 이점이 있습니까?
에서 (함수() {...}를)()를 사용의 이점은 무엇입니까 다음 코드 구조는 함수를 만드는 것 자바 스크립트
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
이 접근법을 사용하는 것보다 인라인 함수의 내용을 사용하면 어떤 이점이 있습니까?
코드의 다른 부분과의 충돌을 막기 위해 클로저를 만듭니다. 이 참조 :
이 특히 편리 당신이 $()
방법을 사용하는 다른 라이브러리를 가지고 있고 또한 jQuery를 함께 있음을 사용할 수있는 능력을 유지해야합니다. 그럼 당신은 이와 같은 클로저를 만들 수 있습니다 : 그것은 함수의 내부의 지역 변수와 작업을 할 수 있습니다
(function($) {
// $() is available here
})(jQuery);
다른 범위의 라이브러리를 덮어 쓰더라도 변수 범위를 만들고 특히 jQuery
에 바인딩하기 위해 예를 들어 $
을 정의합니다. 그것을 익명의 네임 스페이스라고 생각하십시오.
var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();
그러나 더 간단하고 전역 변수를 필요가 없습니다
은 그냥 같아요.
, 대신 글로벌 것들로 변환 할 필요없이.
자체 호출 익명 함수를 사용하면 로컬 범위를 만들 때 매우 효율적이며 직접 자체를 호출합니다.
당신은 그것을 here
중복에 대한 읽을 수 있습니다 : http://stackoverflow.com/questions/592396/what-is-the-purpose-of-a-self-executing-function-in-javascript –
이를 하나뿐 : http://stackoverflow.com/questions/631187/javascript-scope-and-closure 문제는 이러한 질문/답변의 발견 가능성이 좋지 않다는 것입니다. 내가 아는 모두 "[javascript] (function()"인 경우, 검색은 유용한 것을 찾지 못합니다. – Alan