자바스크립트 생성자에 관해 질문이 있습니다..
글쓴이: gyunn / 작성시간: 목, 2014/10/09 - 2:58오후
function Users() { function Person (name) { console.log(this + ' : this is constructor'); } Person.query = function() { console.log('this is query!'); } console.log(Person); // 생성자 함수 Person 출력됨. return Person; } var temp = new Users(); console.log(temp); temp.query();
코드는 위와 같습니다.
Person 객체를 반환하는 코드가 Person 생성자 함수 밖에 있는 코드인데... 이해가 잘 안되네요.
return Person전에 Person을 출력해봤는데 function Person () { ..... } 이 출력되구요
제가 기대한 값은 Person 객체의 프로퍼티나 메소드 정보 (query에 대한 정보가 포함된) 들이 나오는 것이였는데요.
반환되는건 function Person() {...} 이란 건데
어떻게 이걸로 temp.query 구문이 실행될 수 있는거죠?
혹시 이 현상을 설명해주시거나.... 제가 답을 찾을 수 있도록 도움을 주셨으면 합니다.
Forums:
1. Person 객체가 아니라 Person 함수를
1. Person 객체가 아니라 Person 함수를 반환하고 있습니다.
2. Person.query가 함수고, temp가 Person이므로 temp.query()를 실행하는데 문제가 없습니다.
3. 코드의 의도는 잘 모르겠습니다만, Person 객체를 생성하려면 new Person() 이라고 해야죠.
그렇군요
답변해주셔서 감사합니다 ^^
댓글 달기