2013-03-11 4 views
2

외부 JavaScript 파일을 다운로드하여 HTML5 사용자 인터페이스를 만들고 싶습니다. 왜 자바 스크립트 코드 (아래 참조)가 그의 주요 기능을 시작하는지 이해할 수 없습니다.괄호 안에있는 간단한 JavaScript 함수

//JavaScript Code 
(function(Raphael) { 
     // some codes here 
})(window.Raphael); 

왜 그 기능이 괄호 안에 있습니까?

"window.Raphael"의 의미는 무엇입니까?

답변

4

self invoking anonymous function의 예입니다.

이 함수에 window.Raphael을 전달하고 있습니다.이 함수는 본질적으로 함수 내에서 "이름이 바뀐"Raphael입니다.

+1

이론적으로는 자체 호출 함수가 아니기 때문에 * self-invoking *라고 부르는 것은 잘못되었습니다. 대신 스레드 (다른 함수 나 전역 범위 일 수 있음)가 정의되어 있습니다. – techfoobar

+1

그 이유는 축소 도구가 'Raphael'의 모든 사용을 단축 된 변수 이름으로 단축 할 수 있기 때문입니다 기능을 제공합니다. –

-1

바로 실행 기능 (IIFE)입니다. 그 의미는 나중에 정의되고 실행됩니다.

이 경우도 SVG 라이브러리 인 RaphaelJS을 사용합니다. IIFE는 아마도 Raphael에 의해 정의 된 전역 변수를 받아 들일 수 있습니다.이 변수는 window.Raphael

+1

IEF가 YAUA (Yet Another Unnecessary Acronym)이기 때문에 downvoted. –

+0

동의 함. 방금 "즉시 실행 함수"를 계속 입력하고 싶지 않았습니다. :-) – techfoobar

+0

가장 일반적인 약어는 IIFE입니다. 즉 바로 호출되는 함수 표현식입니다. – Adam

관련 문제