JavaScript Object 초기화 - JavaScript Object chogihwa

객체의 생성

객체의 생성

자바스크립트에서 객체를 생성하는 방법은 다음과 같습니다.

1. 리터럴 표기(literal notation)를 이용한 방법

2. 생성자 함수(constructor function)를 이용한 방법

3. Object.create() 메소드를 이용한 방법

위와 같은 방법으로 생성되어 메모리에 대입된 객체를 인스턴스(instance)라고 합니다.

리터럴 표기를 이용한 객체의 생성

자바스크립트에서 객체를 생성하는 가장 쉬운 방법은 리터럴 표기(literal notation)를 이용하는 방법입니다.

문법

var 객체이름 = {

    프로퍼티1이름 : 프로퍼티1의값,

    프로퍼티2이름 : 프로퍼티2의값,

    ...

};

각각의 프로퍼티는 이름과 값을 콜론(:)으로 연결하고, 쉼표(,)를 사용해 다른 프로퍼티와 구분합니다.

프로퍼티의 이름으로는 자바스크립트의 식별자(identifier)나 문자열을 사용할 수 있습니다.

예제

var kitty = {

    name: "나비",

    family: "코리안 숏 헤어",

    age: 1,

    weight: 0.1

};

document.write("우리 집 새끼 고양이의 이름은 " + kitty.name + "이고, 종은 " + kitty.family + "입니다.");

코딩연습 ▶

생성자를 이용한 객체의 생성

new 연산자를 사용하여 객체를 생성하고 초기화할 수 있습니다.

이때 사용되는 메소드를 생성자(constructor)라고 하며, 이 메소드는 새롭게 생성되는 객체를 초기화하는 역할을 합니다.

자바스크립트는 원시 타입을 위한 생성자를 미리 정의하여 제공합니다.

예제

var day = new Date(); // new 연산자를 사용하여 Date 타입의 객체를 생성함.

document.write("올해는 " + day.getFullYear() + "년입니다.");

코딩연습 ▶

위의 예제처럼 자바스크립트에서 제공하는 생성자를 사용할 수도 있으며, 사용자가 직접 객체 생성자 함수(object constructor function)를 작성하여 사용할 수도 있습니다.

객체 생성자 함수에 대한 더 자세한 사항은 자바스크립트 프로토타입 수업에서 확인할 수 있습니다.

자바스크립트 프로토타입 수업 확인 =>

Object.create() 메소드를 이용한 객체의 생성

Object.create() 메소드를 이용하여 객체를 생성할 수도 있습니다.

Object.create() 메소드는 지정된 프로토타입(prototype) 객체와 프로퍼티를 가지고 새로운 객체를 만들어 줍니다.

따라서 이 메소드를 이용하면 사용자가 프로토타입 객체를 직접 명시할 수 있으므로, 상당히 유용하게 사용됩니다.

문법

Object.create(프로토타입객체[, 새로운객체의프로퍼티1, 새로운객체의프로퍼티2, ...]);

Object.create() 메소드의 첫 번째 인수로는 프로토타입으로 사용할 객체를 전달합니다.

두 번째 인수로는 새로운 객체의 추가할 프로퍼티 정보를 전달합니다.

예제

var obj = Object.create(null, {             // null 프로토타입을 사용하여 새로운 객체를 만들고

    x: { value: 100, enumerable: true },    // x좌표를 나타내는 열거할 수 있는 프로퍼티와

    y: { value: 200, enumerable: true }     // y좌표를 나타내는 열거할 수 있는 프로퍼티를 추가함.

});

obj.x;                      // x좌표

obj.y;                      // y좌표 

Object.getPrototypeOf(obj); // 객체의 프로토타입을 반환해 줌.

코딩연습 ▶

프로토타입 객체에 대한 더 자세한 사항은 자바스크립트 프로토타입 수업에서 확인할 수 있습니다.

자바스크립트 프로토타입 수업 확인 =>

연습문제

  • 연습문제1
  • 연습문제2
  • 연습문제3
  • 연습문제4
  • 연습문제5


자바스크립트 개발 환경 Microsoft Visual Studio 2015 버전 HTML 기능 및 Chrome을 이용하고 있습니다.

자바스크립트도 C++ / Java 처럼 객체 생성과 동시에 초기화를 할 수 있는 방법이 있다.

이전 C++ / Java를 배울때 처럼 생성자에서 변수 초기화를 바로 해주는 것을 생각하며 아래 코드를 보자.

동작 과정은 똑같으나 ||를 이용하여 undefined가 될 때 || 연산을 통해 다음 값을 넣어주는 방식을 이용한다.

이와같은 방법을 옵션 객체 초기화라고 한다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<title>test title</title>

<script>

function test(val) {

var ret = {

a : val.a || 100,

b : val.b || 200,

c : val.c || 300      

}

return ret.a + " " +  ret.b + " " + ret.c ;

}

var t = test({

a: 1,

c: 3

});

alert(t);

</script>

//                                                       This source code Copyright belongs to Crocus

//                                                        If you want to see more? click here >>

Crocus

Toplist

최신 우편물

태그