자바스크립트 생성자 함수의 기본 개념과 사용법

자바스크립트에서 생성자 함수는 객체를 생성하기 위해 사용되는 특별한 유형의 함수입니다. 생성자 함수는 클래스와 유사한 역할을 하며, 동일한 속성과 메서드를 가지는 여러 개의 객체를 생성할 수 있습니다. 이를 통해 코드의 재사용성을 높이고 객체 지향적인 프로그래밍을 할 수 있습니다.

생성자 함수 선언하기

생성자 함수는 function 키워드를 사용하여 선언됩니다. 관례적으로 생성자 함수의 이름은 대문자로 시작하여 객체 생성자로서의 역할을 잘 나타내도록 작성하는 것이 좋습니다. 예를 들면 다음과 같습니다:

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

var john = new Person("John", 25);

위 예제에서 Person은 생성자 함수로, nameage라는 매개변수를 받아 해당 속성을 가진 객체를 생성합니다. 생성자 함수는 this 키워드를 사용하여 새로운 객체에 속성을 할당합니다.

객체 생성하기

생성자 함수를 사용하여 객체를 생성하려면 new 키워드를 이용해야 합니다. new 키워드를 통해 생성된 객체는 생성자 함수의 속성과 메서드를 상속받아 사용할 수 있습니다. 예를 들어:

var john = new Person("John", 25);
console.log(john.name); // 출력: "John"
console.log(john.age); // 출력: 25

위 예제에서 Person 생성자 함수를 사용하여 john이라는 객체를 생성하였습니다. john 객체는 nameage 속성을 가지며, 생성자 함수의 속성과 메서드를 사용할 수 있습니다.

상속과 프로토타입

자바스크립트에서 생성자 함수를 이용한 객체 생성은 프로토타입 상속을 기반으로 합니다. 생성자 함수에 추가한 메서드나 속성은 모든 생성된 객체에게 공유됩니다. 이렇게 함으로써, 메모리를 절약하고 코드의 효율성을 높일 수 있습니다.

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

john.greet(); // 출력: "Hello, my name is John"

위 예제에서 Person 생성자 함수의 프로토타입에 greet 메서드를 추가하였습니다. 이렇게 추가된 메서드는 모든 Person 객체에게 상속되어 사용할 수 있습니다. 따라서 john.greet()을 호출할 수 있게 됩니다.

마무리

이로써 자바스크립트 생성자 함수의 기본 개념과 사용법에 대해 알아보았습니다. 생성자 함수를 이용하면 객체를 쉽게 생성하고 관리할 수 있으며, 객체 지향적인 프로그래밍을 할 수 있습니다. 생성자 함수와 프로토타입을 활용하여 자바스크립트 코드를 더욱 효율적으로 작성할 수 있습니다.

#javascript #생성자함수