Class객체에서 constructor & this

2024-01-16

  • JavaScript

1. 클래스의 constructor 개념

클래스의 constructor는 클래스로부터 객체를 생성할 때 호출되는 특별한 메소드입니다. 이 메소드는 새 객체의 초기 상태를 설정하는 데 사용됩니다. 여기서 "상태"라 함은 객체가 가질 수 있는 데이터(속성)와 행동(메소드)을 의미합니다.

constructor 특징

  • 클래스에서 하나만 존재할 수 있으며, 클래스를 통해 객체가 생성될 때 자동으로 실행됩니다.

  • 객체의 초기 속성 값을 설정하는 데 사용되며, 필요에 따라 인자를 받아 객체를 초기화할 수 있습니다.

  • constructor는 선택적입니다. 명시적으로 정의하지 않으면, JavaScript는 기본 constructor를 제공합니다.

예를 들어:

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

여기서 Person 클래스에는 nameage라는 두 속성이 있습니다. new Person('Alice', 30)을 호출하면, constructor가 실행되어 새 Person 객체의 nameage가 설정됩니다.

2. this 키워드의 개념

this 키워드는 현재 객체의 인스턴스를 참조하는 데 사용됩니다. 클래스의 메소드 내에서 this를 사용하면, 그 메소드를 호출한 객체의 속성이나 메소드에 접근할 수 있습니다. 간단히 말해, this는 현재 객체 자신을 가리키는 포인터 또는 참조자라고 생각할 수 있습니다.

this 특징

  • this는 메소드가 속한 객체의 현재 인스턴스를 가리킵니다.

  • 클래스 내부에서 this를 사용하면, 해당 클래스로 생성된 객체의 속성이나 메소드에 접근할 수 있습니다.

  • constructor와 일반 메소드 모두에서 this를 사용할 수 있습니다.

예를 들어:

class Person {
    constructor(name, age) {
        this.name = name; // 현재 객체의 'name' 속성을 설정
        this.age = age;   // 현재 객체의 'age' 속성을 설정
    }

    greet() {
        console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
    }
}

const alice = new Person('Alice', 30);
alice.greet(); // 'Hello, my name is Alice and I am 30 years old.' 출력

여기서 alice 객체의 greet 메소드를 호출할 때, this.namethis.agealice 객체의 nameage 속성을 참조합니다.

요약하자면, constructor는 클래스의 객체가 생성될 때 초기화를 위해 호출되는 특별한 메소드이고, this는 클래스의 메소드 내에서 현재 객체의 속성이나 다른 메소드에 접근할 때 사용되는 키워드입니다.

Queue 란...

Merge Two ...