메뉴 건너뛰기

관리자2020.08.29 21:20
1. 일단 다음과 같이 작성되어야 정답이라고 할 수 있겠습니다.

var div = null;
function init(){
div = document.getElementById("a");
realTime(div);
}
function realTime(obj){
var date = new Date();
obj.innerHTML = date.toLocaleTimeString();
window.setTimeout("realTime(div)", 1000);

}

2. 독자가 작성한 정상 코드가 사실은 정상이라고 하기에는 좀...
왜냐하면 다음 부분에서 a의 존재는 표준인지 확실치 않네요.
window.setTimeout("realTime(a)", 1000);

a라는 변수가 선언되지 않았으니 realTime() 함수가 호출될 때 a가 넘어가는데 브라우저의 자바스크립트 엔진은 a의 존재를 무엇이라고 판단할까요?
아마도 id=a인 div 객체로 처리한 것 같습니다. 이런 방식은 과거 HTML4에서 사용하던 방식인데 현재로 사용하고 있는지 불확실합니다.
그래서 정답은 1.에서 제시한 것처럼 웹페이지가 적재된 직후 실행된 init()에서 id=a인 객체를 확실히 찾고 이 객체를 가리키는 변수 div를 전역변수로 선언하고
realTime() 함수에 div 를 전달하는 것으로 하면 명확히 정리됩니다.
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
위로