• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

window객체 대신 document객체를 사용해도 되나요?

23.01.23 21:14 작성 조회수 282

0

섹션 6. 키보드 event 체크에서 질문이 있습니다.

DOM은 브라우저가 HTML 문서를 파싱하는 과정에서 생겨나는 객체라고 배웠고,

window는 가장 높은 최상위 공간에 존재하고 있는 전역객체라고 배웠습니다.

그런데, event속성을 사용할 때, 꼭 굳이 window를 사용해야 하는지 여쭤봅니다.

어떻게보면 event속성도 크게보면 HTML 문서 내 한 요소이자 영역인 것 같아서요.

 

혹시 window 객체에서 사용가능한 속성과 document 객체에서 사용가능한 속성이

따로 분리되어 각자 사용하기로 약속한게 있는건가요? 이점이 궁금합니다.

감사합니다.

답변 1

답변을 작성해보세요.

0

otter님의 프로필

otter

2023.01.25

안녕하세요 Json님!

먼저, 말씀해 주신 window 객체는 BOM(Browser Object Model)이라고도 불리는데요!

HTML 문서를 파싱하는 과정에서 생성되는 DOM과 다르게 브라우저 자체에서 내장하고 있는 객체 모델입니다.

즉, 서로 다른 존재이기 때문에 브라우저 내에서 window 내부를 살펴보면 그 안에 document(DOM)이 존재하는 것도 확인할 수 있죠.

또한 event 속성의 경우 말씀하신 것처럼 최상위 객체인 전역 객체, window에서 파생되기 때문에 앞에 window를 붙이지 않고도 사용할 수 있습니다. 허나 이는 점점 사용을 줄여가는 추세입니다.

console.log(event.keyCode);

 

이외에도 사용이 권장되는 방식으로는 event handler를 정의하는 과정에서 인자를 넘겨주는 방식이 있습니다.

이는 아래와 같이 사용할 수 있습니다.

<input onkeydown="keyCodeCheck(event)" />

// ...생략

<script>
  const keyCodeCheck = function(event) {
    console.log(event.keyCode)
  }
</script>

 

감사합니다. :)