• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Person 객체를 생성할 때 this사용법 문의

19.11.09 17:00 작성 조회수 95

0

function Person(name, age) {

this.name= name;

this.age = age;

}

 Employee객체도 이런식으로 생성이 되어있는데 이 부분에서 궁금한 점이 있습니다.

this는 함수안에서 사용될 때는 window 혹은 global 객체를 가리키는 거라고 하셨는데 그럼 위 코드에선 this를 사용하나 사용하지 않으나 같은 상황이 아닐까, 어떤게 다른건가 궁금합니다.

this를 사용해도 window 객체를 가리키고 this를 사용하지 않아도 전역변수인거니까 결국은 같은 거 아닌가요..?

제가 어떤 걸 잘못이해하고 있는건지 알려주시면 감사하겠습니다.

답변 1

답변을 작성해보세요.

2

함수를 '생성자'로서 이용할 때엔 this가 해당 인스턴스를 가리키게 됩니다.

Person('a', 1);

이라고 실행했을 경우에는 전역객체의 name, age 프로퍼티에 각각 값이 할당되겠지만,

var jn = new Person('abc', 1);

이라고 실행할 경우에는 jn이라는 객체 (Person의 인스턴스)가 곧 this가 되어, 

jn 객체에 { name: 'abc', age: 1 } 이 담기게 됩니다.