toggle-toggle / javascript-basic

🌱우아한 테크코스 프론트엔드 자바스크립트 기초 스터디 입니다.
9 stars 0 forks source link

[this] 생성자 함수의 동작 방식을 this와 함께 설명해주세요. #24

Open ddongule opened 3 years ago

shinsehantan commented 3 years ago

new 연산자로 클래스를 호출하는 순간 내부에 정의한 메서드가 들어있는 객체(인스턴스)가 생성되고, constructor()가 자동 호출된다. 이때 constructor 내부에서 선언한 클래스 필드(프라퍼티)는 새로 생성되어 반환되는 객체, 즉 인스턴스를 가리키는 this에 바인딩이 된다.

ddongule commented 3 years ago

빈 객체를 만들어 this에 할당한다. 함수 본문을 실행한다. this에 새로운 property를 추가해 this를 수정한다. this를 반환한다.

function User(name) {
 // this = {};

 // 새로운 프로퍼티를 this에 추가
 this.name = name;
 this.isAdmin = false;

 // return this; (this의 암시적 반환)
}
bucketHaneul commented 3 years ago
jum0 commented 3 years ago
function User(name) {
    // 1. 빈 객체가 암시적으로 만들어짐
  // this = {};

  // 2. 새로운 프로퍼티를 this에 추가함
  this.name = name;
  this.isAdmin = false;

  // 3. this가 암시적으로 반환됨
  // return this;
}

devhyun637 commented 3 years ago

new를 통해 객체를 생성하면, 자바스크립트에서는 this를 생성된 인스턴스로 할당한다. 따라서 생성자는 빈 객체인 this를 가지게 된다. 이후 인스턴스 내부의 메소드는 this.[메소드명]을 통해 생성자의 멤버변수나 다른 메서드를 사용할 수 있다.