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