공통점
- 특정 부분의 작업을 수행한다.
- 계산이나 작업의 처리를 위해서 필요한 값을 넘겨받을 수 있다.
차이점
- Sub 는 작업을 처리하지만, 결과값을 리턴시키지는 않는다
- Sub 는 작업의 처리를 위해서 일정한 자료를 받거나 받지 않을 수 있다.
- Function 은 작업을 수행하고, 결과값을 리턴한다.
- Function 은 작업의 처리중에 필요한 자료를 함수에 전달해야 한다.
- Function 은 작업의 결과를 리턴하기 위해서는 함수와 같은 명칭의 변수명에 값을
넣어서 되돌려 보내야 한다.
호출예
- Sub : <% Call Sub_name(값)%>
- Function : <% 변수명 = Finction_name (값)%>
우선 결과만을 적어보았습니다.
서브프로시저(Sub)나 함수(Function)를 사용하는 까닭이 무엇일까요?
사실 ASP 코딩은 엄청난 노가다를 필요로 할 때가 많습니다.
html 사이 사이에 ASP 코드를 절묘하게 집어넣어야 하는 것은 눈도 아프고
머리도 아프고 그렇습니다.
그런데, 한번 작성한 ASP 코드를 재사용해야 할 경우도 많습니다.
예를 들자면 『 유용한 ASP 예제 』포럼에 있듯이 html 코드를 text 로 변환하는 것이나
숫자를 받아서 화폐형식으로 변환시킨다던가 하는 것 이겠죠.
우리는 여기서 예제로 임의의 숫자를 받아서 브라우저에 구구단 형식으로 변환시키는
것으로 하겠습니다.
처음 코딩을 시작할 때 서브프로시저나 함수로 변환할 수 있는 것은 변환시키는
것이 편하고 나중에도 좋을 것이라는 생각은 하면서도 나 자신도 그렇게 되지 않더군요.
그래서 한군데 소스가 변하면 몇군데를 일일이 쫒아다니면서 수정을 해야하는
이 단순함....
앞으로는 서브나 함수를 잘 이용해 보자는 생각에 쉽게 정리를 하고자 합니다.
Function 의 예제
<% function calcu(test) for i = 1 to 20 value = test * i 'response.write test & " * " & i & " = " & value & "<br>" 이것은 나중에 Sub로 변환시
사용할 것임 calcu = calcu & test & " * " & i & " = " & value & "<br>" '리턴값을 함수명과 같은 calcu 로 넘기는 것에 주목해주세요..
next End function
%> <html> <head> <title>이십단</title> <script language="javascript"> <!-- function num_check() { for (var i=0; i<document.form.gugu_num.value.length; i++) { if (!(document.form.gugu_num.value.charAt(i) >= '0' && document.form.gugu_num.value.charAt(i) <= '9')) { alert("숫자만 계산을 할수 있단다.") document.form.gugu_num.value=""; return false; }
} document.form.gugu_num.focus return true; } //--> </script> </head> <body>
<br> <form name="form" action = "test.asp" method="post"> 구구단을 외고 싶은 수 : <input type="text" name="gugu_num" size="10" maxlength="10"> <input type="submit" name="submit" value="눌러주세요" onclick="num_check();"> </form> <% gugu_num = trim(request("gugu_num")) if gugu_num <> "" then response.write gugu_num & " 단 입니다.<p>" response.write calcu (gugu_num) 'calcu gugu_num Sub 에서 사용할 코드
end if %>
</body> </html>
Sub 의 예제
<% Sub calcu(test) for i = 1 to 20 value = test * i response.write test & " * " & i & " = " & value & "<br>" 'calcu = calcu & test & " * " & i & " = " & value & "<br>" Function 일때 쓴 코드
next End Sub
%> <html> <head> <title>이십단</title> <script language="javascript"> <!-- function num_check() { for (var i=0; i<document.form.gugu_num.value.length; i++) { if (!(document.form.gugu_num.value.charAt(i) >= '0' && document.form.gugu_num.value.charAt(i) <= '9')) { alert("숫자만 계산을 할수 있단다.") document.form.gugu_num.value=""; return false; }
} document.form.gugu_num.focus return true; } //--> </script> </head> <body>
<br> <form name="form" action = "test.asp" method="post"> 구구단을 외고 싶은 수 : <input type="text" name="gugu_num" size="10" maxlength="10"> <input type="submit" name="submit" value="눌러주세요" onclick="num_check();"> </form> <% gugu_num = trim(request("gugu_num")) if gugu_num <> "" then response.write gugu_num & " 단 입니다.<p>" 'response.write calcu (gugu_num) Function 일때 쓴 코드 calcu gugu_num
end if %>
</body> </html>
출처 : http://www.asprun.co.kr/main/default.htm |