인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김소라님의 프로필 이미지
김소라

작성한 질문수

코어 자바스크립트

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

작성

·

146

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 } 이 담기게 됩니다.

김소라님의 프로필 이미지
김소라

작성한 질문수

질문하기