CODEDRAGON ㆍDevelopment/JavaScript, jQuery, ...
즉시 실행 함수(immediate funtions)
함수를 정의함과 동시에 바로 실행되는 함수
익명함수를 응용한 형태
즉시 실행함수는 한번 수행 후, 다시 호출할 수 없습니다.
이런, 특성으로 최초 한 번의 실행만을 필요로 하는 초기화 코드부분에 패턴으로 사용되어 집니다.
즉시 실행 함수 형식
( function( ) { 코드 })( ) |
괄호 ( ) 로 함수리터럴을 사용한 함수 정의 부분을 감쌉니다. 그런 다음 함수가 바로 호출될 수 있게 ( ) 괄호 쌍을 추가합니다. |
즉시 실행 함수 패턴
라이브러리 코드가 처음 로드되어 초기화할 때, 즉시 실행 함수 패턴이 많이 사용되어 집니다.
라이브러리 코드를 즉시 실행 함수 내부에 정의하게 되면 라이브러리 내의 변수들은 함수 외부에서 접근할 수 없게 됩니다. 이렇게 함으로써 이후 다른 자바스크립트 라이브러리들을 동시에 로드하더라도 라이브러리간 변수 이름 충돌 같은 문제를 방지할 수 있습니다.
라이브러리 | 즉시 실행 함수 | 설명 |
jQuery 1.11.1 | (function( global, factory ) { ……………. })(window); |
window를 즉시실행함수의 인자로 넘기며 호출합니다. |
Underscore 1.3.3 | (function(){ var root=this; var previousUnderscore=root._; ……………. }).call(this); |
call함수를 this인자와 함께 사용하였습니다. 실행시 this가 즉시 실행함수 내부의 this에 연결되어 root라는 함수 내부 변수에 저장되어 사용되어 집니다. |
Sugar 1.2 | (function(){ ……………… buildObject(); buildFunction(); initializeClass(date); })( ); |
특별한 인자 없이 즉시 실행함수를 호출합니다. |
소스 코드
<html>
<head>
<meta charset="UTF-8">
<title>즉시 실행 함수</title>
<script type="text/javascript">
(function (name) {
document.write(name + '가 실행되었습니다.');
})('즉시실행함수');
</script>
</head>
<body>
</body>
</html>
출력 결과
('즉시실행함수')로 즉시 실행 함수를 호출 했으며, 이 때 '즉시실행함수' 라는 문자열을 인자로 념겨 호출하였습니다. 이 값은 즉시 실행 함수의 name매개 변수에 넘겨져서 출력되게 됩니다.
'Development > JavaScript, jQuery, ...' 카테고리의 다른 글
함수 스코프 외부에서 내부 함수 호출 (0) | 2022.02.27 |
---|---|
내부 함수 호출/함수 스코프 (0) | 2022.02.22 |
이벤트 처리와 콜백함수 (0) | 2022.02.15 |
익명 함수 형태의 내부 함수 (0) | 2022.02.14 |
jQuery 파일 CDN 경로 - 모든 버전 (0) | 2022.02.04 |