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

미해결질문
conchocco 프로필

function Person(name, age) {

this.name= name;

this.age = age;

}

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

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

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

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

정재남 프로필
정재남 6달 전

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

Person('a', 1);

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

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

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

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

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스