객체 생성자 함수란?
객체 생성자 함수란 객체의 인스턴스를 생성하는 함수입니다. new
연산자를 사용해 다음과 같이 빈 객체를 생성할 수 있습니다.
const car = new Object();
이처럼 생성자 함수를 통해 생성한 객체를 인스턴스라 합니다. 다음과 같이 생성한 인스턴스에 프로퍼티나 메소드를 추가할 수도 있습니다.
car.name = 'K5';
car.start = function () {
console.log('Starting up the engine');
};
console.log(car.start()); // Starting up the engine.
자바스크립트에는 객체 뿐만 아니라 문자열, 숫자, 불리언, 함수 등을 생성자 함수를 통해 생성할 수 있습니다.
생성자 함수를 사용하는 이유
객체를 생성할 때는 생성자 함수보다 객체 리터럴을 사용하는 것이 보다 편리합니다. 그러나 생성자 함수는 다음과 같이 동일한 프로퍼티와 메소드를 갖는 객체를 생성할 때 유용하게 사용될 수 있습니다. 아래의 예시에서처럼 생성자 함수에서 this
는 생성자 함수가 생성할 인스턴스를 가리킵니다.
function Car(number) {
this.number = number
this.name = 'K5';
this.start = function () {
console.log(`${number}: Starting up the engine`);
}
}
const car1 = new Car('AE1342');
const car2 = new Car('FE3412');
console.log(car1); // car { number: 'AE1342', name: 'K5', start: [Function] }
console.log(car2); // car { number: 'FE3412', name: 'K5', start: [Function] }
console.log(car1.start()); // AE1342: Starting up the engine
console.log(car2.start()); // FE3412: Starting up the engine
생성자 함수는 보통 함수 이름을 '명사'로 지으며, 첫 글자를 대문자로 표기합니다.
마치며
자바스크립트 객체 생성자 함수는 동일한 프로퍼티와 메소드를 갖는 함수를 생성할 때 유용하게 사용할 수 있습니다. new
연사자를 사용하지 않을 경우, 해당 함수는 일반 함수로 작동합니다.
'개발 > JavaScript' 카테고리의 다른 글
자바스크립트 this 의 개념과 바인딩 설명 (0) | 2020.10.25 |
---|---|
Ajax란 무엇일까? (0) | 2020.10.20 |
자바스크립트 세미콜론은 언제 사용할까? (0) | 2020.10.17 |