객체 생성
- 사용자 정의 객체를 생성하는 방법은 크게 3가지가 있습니다.
- 객체 이니셜라이저(initializer) 이용
- 생성자 함수 이용
- Object.create() 메서드 이용
객체 이니셜라이저(initializer) 이용
- 이 방법은 '리터널 표기에 의한 객체 생성'(creating objects with literal notation)이라고도 불립니다.
- 기본적인 형태는 다음과 같습니다.
1 2 3 4 5 6 | var obj = { property_1: value_1, property_2: value_2, // ..., property_n: value_n }; |
- 중괄호를 사용하여 묶고, 각 프로퍼티(property)에 값(value)를 매칭시키면 끝납니다.
1 2 3 4 5 | var myHonda = { color: "red" , wheels: 4, engine: { cylinders: 4, size: 2.2 } }; |
생성자 함수 이용
- 생성자 함수란 객체를 만들기 위한 타입을 정의해놓는 함수를 말합니다.
- 함수이기 때문에 function 키워드를 이용하여 선언하고 만들면 됩니다.
- 생성자 함수를 이용하여 객체를 생성하는 단계는 다음과 같습니다.
- 먼저 생성자 함수를 생성합니다.
- 생성자 함수의 이름은 대문자로 정의하는 관례가 있으므로 따르도록 합니다.
- 'new' 키워드를 이용하여 객체 인스턴스를 생성합니다.
- 예를 들어 자동차 타입의 객체를 만들기 위한 생성자는 다음과 같이 만들 수 있습니다.
1 2 3 4 5 | function Car(make, model, year) { this .make = make; this .model = model; this .year = year; } |
- Car 생성자는 제조사(make), 모델(model), 년도(year) 프로퍼티를 가지고 있습니다.
- 'this' 키워드는 생성자 함수를 호출할 때 괄호 안의 make, model, year 함수 인자에 값을 전달하고 받은 값을 생성된 객체에 할당하기 위해 사용합니다.
1 2 | var kenscar = new Car( "Nissan" , "300ZX" , 1992); var vpgscar = new Car( "Mazda" , "Miata" , 1990); |
- Car() 생성자를 이용하여 매개변수에 값을 넣어 'kenscar', 'vpgscar' 자동차 객체를 생성한 것입니다.
- 각 객체를 구성하는 프로퍼티의 종류는 같지만, 그 프로퍼티 값은 다르게 객체를 만들 수 있습니다.
Object.create() 이용
- 이 메소드는 사용할 프로토타입 객체를 사용자가 직접 선택합니다.
- 객체를 프로토타입으로 설정하여 여러 객체를 생성할 수 있습니다.
1 2 3 4 5 6 7 8 | var Car = { make: "Nissan" , model: "300ZX" , year: 1992 }; var car1 = Object.create(Car); var car2 = Object.create(Car); |