본문 바로가기

JavaScript

JavaScript Object Constructors

반응형

JavaScript에서 객체 생성자는 클래스와 유사한 역할을 하는 특별한 함수입니다. 생성자는 특정 타입의 객체를 만들기 위한 틀로 사용되며, 그 타입의 인스턴스를 여러 개 만들 수 있습니다. 이를 통해 코드 재사용성을 높이고 중복을 줄일 수 있습니다.

객체 생성자 정의

객체 생성자는 일반 함수와 유사하게 정의됩니다만, 관례상 생성자 함수의 이름은 대문자로 시작합니다. 생성자 내에서 this 키워드는 새로 생성된 객체를 참조하며, 이 객체에 프로퍼티와 메서드를 추가할 수 있습니다.

function Person(firstName, lastName, age) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.age = age;
  
  this.fullName = function() {
    return this.firstName + ' ' + this.lastName;
  };
}

객체 인스턴스 생성

new 키워드와 생성자 함수를 사용하면 해당 생성자의 타입을 가진 새로운 객체를 생성할 수 있습니다.

const john = new Person('John', 'Doe', 30);
console.log(john.fullName()); // "John Doe"


생성자 프로토타입 활용

생성자의 prototype 속성을 활용하면, 생성자에 의해 생성된 모든 인스턴스가 공유하는 메서드를 정의할 수 있습니다. 이를 통해 메모리를 효율적으로 사용할 수 있습니다.

Person.prototype.sayHello = function() {
  return 'Hello, my name is ' + this.fullName();
};

console.log(john.sayHello()); // "Hello, my name is John Doe"


prototype을 사용하면 모든 인스턴스가 메서드를 공유하므로, 각 인스턴스마다 메서드를 복사할 필요가 없으므로 메모리를 절약할 수 있습니다.

이러한 객체 생성자와 프로토타입의 활용은 객체 지향 프로그래밍 패턴을 자바스크립트에서 구현하는 데 중요한 요소입니다.

반응형