> [!date] published: 2021-05-26 > [!Info] > Do it! 웹 프로그래밍을 위한 자바스크립트 기본 편을 읽고, 공부하고, 정리한 글 > [책 정보](http://www.easyspub.co.kr/20_Menu/BookView/A001/295/PUB) ## 💛 객체란? ### ✨ 객체 ```javascript var book = { title: "자바스크립트", author: "홍길동", pages: 300, price: 30000, }; ``` ### ✨ 객체의 종류 #### 내장 객체 자주 사용되는 요소는 자바스크립트 안에 이미 객체로 정의되어 있는데 이런 객체들을 내장 객체 (Built-in Object)라고 한다. 예: Number, Boolean, Array, Math... #### 문서 객체 모델(DOM) 객체를 사용해 웹 문서를 관리하는 방식 DOM에서는 웹 문서 뿐만 아니라 그 안에 포함된 이미지, 링크, 텍스트필드 등도 모두 별도의 객체로 만들어 두었다. 예) Document, Image... #### 브라우저 객체 모델 웹 브라우저의 주소 표시줄, 창 크기 같은 웹 브라우저의 정보를 객체로 다룬다. 예) Navigator(사용 중인 브라우저 종류, 버전), History(방문 기록), Location(주소 표시줄), Screen(화면 크기)... #### 사용자 정의 객체 앞서 말한 DOM이나 브라우저 객체 모델도 내장 객체에 속한다. 내장 객체 외에도 사용자가 객체를 정의할 수 있음. ### ✨ 속성과 메소드 - 속성(Property): 객체에서 값을 담고 있는 정보 - 메소드(Method): 객체 안에 정의된 함수 객체의 속성이나 메소드에 접근할 때에는 마침표(.)를 사용해서 접근하면 된다. 📝 Window 객체는 모든 객체를 품고 있는 최상위 객체이기 때문에 Window 객체의 함수를 실행할 때에는 이름만 사용해서 실행할 수 있다. (예: `alert()`, `open()`... ### ✨ 프로토타입, 인스턴스 프로토타입(Prototype)은 어떤 객체들이 공통으로 가지는 속성이나 기능을 모아 둔 틀이라고 할 수 있다. 인스턴스(Instance)는 프로토타입을 사용해서 만들어 낸 객체를 말한다. 인스턴스를 만들기 위해서는 `new` 예약어를 사용한다. ```javascript var now = new Date(); now.toLocaleString(); ``` ### ✨ 내장 객체 활용하기 sMath 객체를 활용해봅니다. (Math 객체와 관련된 함수들 [참고](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math#%EB%A9%94%EC%84%9C%EB%93%9C)) | 함수 | 설명 | | ----------- | -------------------------------- | | `abs(x)` | 숫자의 절댓값 반환 | | `cbrt(x)` | 숫자의 세제곱근 반환 | | `ceil(x)` | 숫자의 소숫점 이하를 올린다. | | `floor(x)` | 숫자의 소수점 이하를 버린다. | | `random(x)` | 0과 1사이에서 난수 반환 | | `round(x)` | 숫자의 소수점 이하를 반올림한다. | ✏️ Math 객체는 따로 인스턴스를 생성하지 않고 바로 속성이나 함수를 사용할 수 있다. ## 💛 사용자 정의 객체 만들기 ### ✨ 객체 리터럴 리터럴(Literal)이란 프로그래밍에서 자료를 표기하는 방식을 의미한다. 리터럴을 사용해서 표기한다는 것은 변수를 선언하면서 동시에 값을 지정해주는 표기 방식을 의마한다. `let a = 10;` 이런 것들... **객체 리터럴 표기법** 이란 객체를 선언하면서 동시에 값을 지정해주는 것이다. ```javascript var book = { title: "목민심서", author: "정약용", year: 1818, info: function () { alert(this.title + "는 " + this.author + "이 쓴 책입니다."); }, }; ``` ### ✨ 생성자 함수 리터럴 표기법을 이용해서 객체를 만드는 방법은 정해진 값을 가진 객체 1개만 만들 수 있다. 그래서 비슷한 객체를 여러 개 만들어야 하는 경우에는 리터럴 표기법을 이용해서 객체를 만드는 것이 번거로울 것이다. 생성자 함수를 이용해서 객체를 만드는 방법은 항상 필요한 속성과 함수를 틀처럼 미리 만들어 두고, 그 틀을 복제한 인스턴스를 만들어서 객체를 만드는 방법이다.