객체방식의 함수, 익명함수의 확장
<!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>

중첩 함수의 변수의 범위
<!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>

댓글남기기