[javascript] 생성자 함수를 사용하여 객체 만들기

자바스크립트에서 객체를 생성할 때에는 생성자 함수를 사용할 수 있습니다. 생성자 함수는 일반 함수와 동일한 방식으로 정의되지만, new 키워드와 함께 호출될 때 객체를 생성하여 반환합니다.

생성자 함수 정의하기

생성자 함수는 일반적으로 대문자로 시작하여 관례적으로 PascalCase로 작성됩니다. 아래는 간단한 생성자 함수의 예시입니다.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

위의 예시에서 Person이라는 생성자 함수를 정의하였습니다. 이 생성자 함수는 nameage라는 두 개의 매개변수를 받아서 객체를 생성합니다. this 키워드를 사용하여 생성자 함수 내에서 해당 객체의 속성을 정의할 수 있습니다.

객체 생성하기

생성자 함수를 사용하여 객체를 생성할 때에는 new 키워드를 사용합니다. 아래는 생성자 함수를 사용하여 객체를 생성하는 예시입니다.

var person1 = new Person("John", 25);
var person2 = new Person("Jane", 30);

console.log(person1);
console.log(person2);

위의 예시에서 Person 생성자 함수를 사용하여 person1person2라는 두 개의 객체를 생성하였습니다. 각 객체는 nameage 속성을 가지고 있습니다. console.log를 사용하여 객체의 내용을 출력할 수 있습니다.

생성자 함수를 통한 객체 상속

생성자 함수를 사용하여 객체를 생성할 때에는 프로토타입 체인을 통해 속성과 메서드를 상속할 수 있습니다. 예를 들어, Person 생성자 함수로 생성한 객체들은 Person.prototype으로부터 상속받은 메서드를 사용할 수 있습니다.

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
};

person1.sayHello(); // 출력: Hello, my name is John
person2.sayHello(); // 출력: Hello, my name is Jane

위의 예시에서 sayHello라는 메서드를 Person.prototype에 추가하였습니다. 따라서 person1person2 객체는 이 메서드를 사용할 수 있습니다.

결론

생성자 함수를 사용하여 객체를 만들면 일관성 있는 방식으로 객체를 생성하고 속성 및 메서드를 관리할 수 있습니다. 생성자 함수를 통해 객체를 생성함으로써 코드의 가독성과 유지 보수성을 높일 수 있습니다.

참고 자료