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