Posted
Filed under ORACLE
[원문] : http://javaora.tistory.com/114
setTimeout 함수는 일반적으로 지정된 시간이후 주어진 함수를 실행한는 타이머와 같은 역할을 한다. 인터넷상에서 검색해 보면 수많은 사용방법이 나온다. 일반적인 사용방법은 아래와 같다.

function test(){
    alert("테스트입니다.");
}

setTimeout("test", 1000);

 그럼 1초후 "테스트입니다." 라는 alert 창이 뜰것이다. 그럼 함수에 인자(Parameter)를 넘길때는 어떻게 하는가?

 아래와 같이 사용하면 된다.

function test(msg){
    alert(msg);
}

setTimeout("test('테스트입니다.')", 1000);

var vMsg = "또 다른 테스트입니다.";
setTimeout("test('+ vMsg +')", 3000);

 그럼 정확히 1초후 "테스트입니다." 라는 alert 창과 함께 "또 다른 테스트입니다." 라는 alert 창이 3초후에 뜰것이다. 여기까지는 setTimeout 의 사용법으로 많이 포스팅 되고 있다. 그렇다면 Object 형 인자를 넘기려면 어떻게 해야 할까?

 의외로 간단하다.

function test(obj){
    alert(obj.value);
}
function fnClick(obj){
    setTimeout(function(){
                          test(obj);
                     }, 1000);
}
<input type="button" value="Hello" onclick="fnClick(this);">

 조금 억지스러워 보일 예제이다. 좋은 예제가 생각안나 그냥 설명하겠다. 소스만 보시고도 감 잡으셨겠지만 Hello 란 버튼을 누르면 1초후 버튼의 값인 "Hello"를 alert 창으로 띄워준다.

 두번째 예제를 보고 Object 형 변수를 어떻게 넘길지 고민하시는 분들께 도움이 되었으면 한다.
2010/05/28 23:53 2010/05/28 23:53