CODEDRAGON ㆍDevelopment/JavaScript, jQuery, ...
함수값을 리턴하는 함수
일반 값처럼 함수 값을 리턴할 수 있습니다.
함수를 리턴하는 함수 기능
- 함수를 호출함과 동시에 다른 함수로 바꾸기
- 자기 자신을 재정의하는 함수 구현
함수를 리턴하는 함수를 이용해 자신을 재정의하는 self함수 정의
소스 코드
<html>
<head>
<meta charset="UTF-8">
<title>자신을 재정의하는 함수 2</title>
<script type="text/javascript">
//self() 함수 정의
var self = function () {
var a= 10;
document.write('a' + '<br>');
return function () {
var b = 20;
document.write('b' + '<br>');
}
}
//원래 함수에서 리턴 받은 새로운 함수 참조값 저장
self = self(); // a
//새로운 함수 참조값으로 함수 호출
self(); // b
</script>
</head>
<body>
</body>
</html>
출력결과
자신을 재정의하는 함수 도식도
동일한 결과이지만 외부 함수와 내부 함수 모두 익명함수로 self 함수 구현한 동일한 형태
소스 코드
<html>
<head>
<meta charset="UTF-8">
<title>자신을 재정의하는 함수 1</title>
<script type="text/javascript">
//self() 함수 정의
function self () {
var a= 10;
document.write('a' + '<br>');
return function () {
var b = 20;
document.write('b' + '<br>');
}
}
//원래 함수에서 리턴 받은 새로운 함수 참조값 저장
self = self(); // a
//새로운 함수 참조값으로 함수 호출
self(); // b
</script>
</head>
<body>
</body>
</html>
출력결과
동일함
익명 내부함수로 정의 및 내부 익명함수를 리턴값으로 반환
09.html (참조)
'Development > JavaScript, jQuery, ...' 카테고리의 다른 글
자바스크립트 내장 함수 (0) | 2022.03.20 |
---|---|
Warning-Undefined attribute name (ng-init) with eclipse (0) | 2022.03.14 |
내부함수와 지역변수 (0) | 2022.03.02 |
함수 스코프 외부에서 내부 함수 호출 (0) | 2022.02.27 |
내부 함수 호출/함수 스코프 (0) | 2022.02.22 |