Object Model
웹 브라우저의 구성요소를 객체화시켜 객체처럼 사용할 수 있도록 하는 것
브라우저에 렌더링되는 HTML문서는 정적인 문서인데, 정적인 요소를 동적으로 제어하기 위한 객체화 방법
javscript로 제어할 수 있는 객체 형태로 만들어 준다

Window는 전역 객체이면서, 모든 객체가 소속된 객체(최상위 객체?)
Document, navigator, object 등은 window의 Property이면서 각각 객체로서 역할을 한다
object model 출처: tistory1, tistory2, youtube
Window
전역 객체
1
2
3
4
5
6
7
8
9
10
11
12
| <!DOCTYPE html>
<html>
<script>
a = 1; # window 객체의 property, 전역변수, 함수에 소속되지 않은 변수
var b = 2;
alert('Hello world'); # window 객체의 메소드
window.alert('Hello world');
</script>
<body>
</body>
</html>
|
Document
Document 객체는 웹 페이지 그 자체를 의미
웹 페이지에 존재하는 HTML요소에 접근하고자 할 때는 DOM으로 만들어야 한다

Document 메소드
1
2
3
4
| 1. HTML 요소 선택
2. HTML 요소 생성
3. HTML 이벤트 핸들러 추가
4. HTML 객체 선택
|
HTML 요소 선택

HTML 요소 생성

HTML 이벤트 핸들러 추가

HTML 객체 선택

사진 출처: tcpschool
Property vs Attribute vs Variable
자바스크립트에서 Property와 Variable
1
2
3
| Property : 인스턴스로부터 만들어진 변수, 인스턴스에 종속된 변수
Variable : 인스턴스와 상관없이 만들어진 변수
|
예제로 알아보자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <script type="text/javascript">
var setMyName = function(value){
this.name = value;
}
var setMyName2 = function(value){
var name = value;
}
var setName = new setMyName("jihyuk"); # setName 인스턴스
var setName2 = new setMyName2("jihyuk2"); # setName2 인스턴스
console.log(setName); # Property를 포함함한 객체
console.log(typeof(setName)); # setName 인스턴스는 object를 반환한다
console.log(setName.name); # Property 값 출력
console.log(typeof(setName.name));
console.log(setName2); # Property를 포함하지 않은 객체
console.log(typeof(setName2));
console.log(setName2.name); # Property가 없다
console.log(typeof(setName2.name));
</script>
|

Html과 Dom에서 Attribute와 Property
1
2
3
| Attribute: HTML관점에서 선택자
Property: DOM관점에서 선택자
|
예제로 알아보자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # HTML 관점
<div class="name">ji hyuk</div>
# 태그 div는 Element
# class는 attribute
# name은 값
# ji hyuk은 data
# DOM 관점
# 태그 div는 Element
# class는 property
# name은 값
# ji hyuk은 data
|
Attribute vs Property: Medium
Variable vs Property: blog
DOM
Document Object Model의 약자로 객체 지향 모델로써 구조화된 문서를 표현하는 형식이다.
Html, xml 같은 문서를 객체형태로 바꾸어 객체로써 이용하기 위한 형태이다.
DOM은 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 W3C의 공식 표준이기 때문에 문서를 객체로써 쓴다면 DOM 형식을 사용해야한다.
DOM은 HTML문서의 모든 요소에 접근하는 방법을 정의한 API이기도 하다.
DOM은 넓은 의미로 웹 브라우저가 HTML 페이지를 인식하는 방식으로 볼 수 있고
좁은 의미로는 document 객체와 관련된 객체의 집합으로 볼 수 있다.
등장 배경
1
2
3
| DOM은 HTML 문서의 요소를 제어하기 위해 웹 브라우저에서 처음 지원되었다.
브라우저가 다양해지면서 브라우저 사이에 DOM 구현이 호환되지 않음에 따라,
W3C에서 DOM 표준 규격을 작성하게 되었다.
|
DOM 출처: tistory, wiki
CCSOM