함수를 리턴하는 함수(자신을 재정의하는 함수 정의)

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 (참조)