1 분 소요

객체방식의 함수, 익명함수의 확장

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수-8(객체방식으로 함수정의, 익명함수의 확장으로 함수 정의)</title>
    <script>
        //객체 방식으로 함수를 정의하는 방법(실무에서 잘 사용되지 않는다.)
        var hi = new Function("name", "document.write(name +'님 환영합니다.')");
        hi("홍길동");
        //익명함수의 확장으로 함수 정의
        //재사용하는 것을 목적이 아닌 다른 함수들과의 충돌을 막기 위해 사용한다.
        (function(name){
            document.write(name + "님 환영합니다.");
        })("홍길동");
    </script>
</head>
<body>    
</body>
</html>

  • 실무에 잘 사용되지는 않음

중첩함수


<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수-9(중첩함수로 되어진 사칙연산)</title>
    <script>
        function calculator(op, num1, num2) {
            var result = "";
            switch(op){
                case "+" :
                    result = add(num1, num2);
                    break;
                case "-" :
                    result = sub(num1, num2);
                    break;
                case "*" :
                    result = mul(num1, num2);
                    break;
                case "/" :
                    result = div(num1, num2);
                    break;
                default :
                    result = "지원하지 않는 연산자임!";
            }          
            //위 switch문에서 사용한 각각의 함수를 중첩함수로 구현
            function add(num1, num2){
                return num1 + num2;
            }
            function sub(num1, num2){
                return num1 - num2;
            }
            function mul(num1, num2){
                return num1 * num2;
            }
            function div(num1, num2){
                return num1 / num2;
            }
            //외부함수의 리턴문
            return result;
        }
        document.write("결과 : " + calculator("+", 100, 200) + "<br/>");
        document.write("결과 : " + calculator("-", 100, 200) + "<br/>");
        document.write("결과 : " + calculator("*", 100, 200) + "<br/>");
        document.write("결과 : " + calculator("/", 100, 200) + "<br/>");
    </script>
</head>
<body>
    
</body>
</html>

image

중첩 함수의 변수의 범위


<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수-10(중첩함수의 변수의 범위)</title>
    <script>
        //아래 3개의 변수는 전역변수
        var a = 100;
        var b = 200;
        var c = 300;
        function outter() {
            //outter()함수의 지역변수            
            var b = 2000;
            var c = 3000;
            //중첩함수 선언과 구현
            //중첩함수는 외부함수의 변수에 쉽게 접근을 할 수 있는 장점이 있다.
            function inner() {
                var c = 30000;
                document.write("1. a = " + a + "</br>");
                document.write("2. b = " + b + "</br>");
                document.write("3. c = " + c + "</br>");
            }
            inner();  //중첩함수를 호출하고 있다.
        }
        outter();
    </script>
</head>
<body>
    
</body>
</html>

image

댓글남기기