[JS] 생성자란?

eunseok·2023년 10월 13일
1

js공부

목록 보기
18/27

생성자란?

생성자(Constructor)는 객체 지향 프로그래밍에서 특정 클래스의 인스턴스를 생성할 때 호출되는 특별한 메서드이다. 이 메서드는 주로 객체의 초기 상태를 설정하는 데 사용된다.

JavaScript에서 생성자 함수는 대문자로 시작하는 관례가 있으며, new 키워드와 함께 사용하여 인스턴스를 생성한다.

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

let john = new Person("John", 30);
console.log(john.name); // "John"
console.log(john.age);  // 30

위 코드에서 Person은 생성자 함수이다. new Person("John", 30)을 호출하면 Person의 새 인스턴스가 만들어지고, 그 인스턴스의 name과 age 프로퍼티가 초기화된다.

ES6이후 생성자 정의

ES6부터 클래스 문법이 도입되면서, 보다 명확하게 생성자를 정의할 수 있게 되었다.

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

let john = new Person("John", 30);
console.log(john.name); // "John"
console.log(john.age);  // 30

Person 클래스의 새 인스턴스를 만들 때 constructor 내부의 코드가 실행되어 해당 객체의 초기 상태를 설정한다.

갑자기 궁금한 점!

만약에 위의 코드처럼 Person 클래스를 생성했고

let john = new Person("John", 30, 555);

이런식으로 생성자 함수에서 요구하는 매개변수의 숫자보다 더 많은 인수를 제공하면 어떻게 될까?

정답은 초과된 인수는 단순히 무시된다. name에는 John, age에는 30으로 할당되지만 555는 어디에도 할당되지않고 무시된다!

0개의 댓글