6-1. 클래스 정의

6-1-1. 생성자 함수

생성자 함수는 사용자 정의 객체 타입 또는 내장 객체 타입의 인스턴스를 생성하는 new 연산자와 함께 호출해서 객체를 생성하여 반환하는 함수를 말한다. 이후 프로퍼티 혹은 메서드를 추가하여 객체를 완성시킬 수 있다. 생성자 함수는 새로운 객체를 만들고 사용자가 요구하는 함수들을 구현할 수 있게 해주는데, 이렇게 생성된 객체를 인스턴스라고 한다.

const player = new Object();

player.name = 'Choi';
player.sayWinner = function () {
		console.log('Ladies and gentlemen, Champion is ' + this.name);
};

player.sayWinner();

결과는 다음과 같다.

Ladies and gentlemen, Champion is Choi

6-1-1-1. 객체 리터럴에 의한 객체 생성 방식

필히 객체 생성자 함수를 사용해 빈 객체를 생성하는 것은 아니다. 객체를 생성하는 방법에는 생성자 함수와 객체 리터럴을 이용해서 만드는 방법이 있고 그 중 객체 리터럴을 이용하여 생성하는 방식이 가장 직관적이고 간편하다. 하지만, 단 하나의 객체만 생성하기 때문에 동일한 프로퍼티를 갖는 객체들을 생성해야 하는 경우에는 같은 프로퍼티를 계속해서 작성해야 하기 때문에 비효율적이다.

const rabbit = {
		type: '토끼',
		name: '빙키',
		sound: '깡총',
		say() {
				console.log(this.sound);
		}
};

console.log(rabbit.say());

const frog = {
		type: '개구리',
		name: '개리',
		sound: '개굴',
		say() {
				console.log(this.sound);
		}
};

console.log(frog.say());

결과는 다음과 같다.

깡총
개굴