CODEDRAGON ㆍDevelopment/JavaScript, jQuery, ...
내부 함수(inner function)
함수 내부에 선언한 함수.
내부 함수를 사용하면 외부에 이름이 같은 함수가 있어도 내부 함수가 우선적으로 호출됩니다.
function 외부 함수(){ function 내부 함수1(){ 코드 } function 내부 함수2(){ 코드 } 내부 함수1( ); } |
내부 함수 기능
- 자바스크립트의 기능르 보다 강력하게 해주는 클로저 생성
- 부모 함수 코드에서 외부에서의 접근을 막고 독립적인 헬퍼 함수를 구현
내부 함수 특징
- 내부 함수에서는 자신을 둘러싼 외부함수의 변수에 접근이 가능합니다. (자바스크립트의 스코프 체이닝)
- 내부 함수는 일반적으로 자신이 정의된 외부 함수 내부에서만 호출이 가능합니다. (자바스크립트의 함수 스코핑)
※함수 스코핑:
함수 내부에 선언된 변수는 함수 외부에서 접근이 불가능합니다.
기본적으로 함수 스코프 밖에는 함수 스코프 안에 선언된 모든 변수나 함수에 접근이 불가능합니다.
소스 코드
<html>
<head>
<meta charset="UTF-8">
<title>내부 함수 호출/함수 스코프</title>
<script type="text/javascript">
//outter() 함수 정의
function outter() {
var a = 10;
var b = 20;
// inner() 내부 함수 정의
function inner() {
var b = 30;
//내부 함수에서는 자신을 둘러싼 외부함수의 변수에 접근이 가능
document.write(a + '<br>');
//b변수는 자신의 함수내에 선언되어 있으므로 외부함수의 b변수가 아닌 자신의 변수 b값이 출력됩니다.
document.write(b);
}
//내부 함수는 일반적으로 자신이 정의된 외부 함수 내부에서만 호출이 가능
inner();
}
outter();
//Uncaught ReferenceError: inner is not defined
inner();
</script>
</head>
<body>
</body>
</html>
출력결과
내부 함수 호출 도식도와 함수 스코프
'Development > JavaScript, jQuery, ...' 카테고리의 다른 글
내부함수와 지역변수 (0) | 2022.03.02 |
---|---|
함수 스코프 외부에서 내부 함수 호출 (0) | 2022.02.27 |
즉시 실행 함수 (1) | 2022.02.21 |
이벤트 처리와 콜백함수 (0) | 2022.02.15 |
익명 함수 형태의 내부 함수 (0) | 2022.02.14 |