2012-06-20 2 views
0

는 :자바 스크립트 중첩 된 함수 내부 '이'키워드는이 자바 스크립트 코드 (생성자 내에서 중첩) 중첩 된 함수 내부의 '이'키워드를 사용

a 
1 
c 
3 
:

o=new MyCtor(); 
for (var p in o) { 
    print(p); 
    print(o[p]); 
} 
function MyCtor() { 
    this.a=1; 
    var instance=this; 
    nested(); 
    function nested() { 
    this.b=2; 
    instance.c=3; 
    } 
} 

결과는 이것이다

참고 print()는 브라우저의 alert()처럼 화면에 출력을 덤프합니다 (브라우저 내부가 아닌 독립형 스파이더 맨 키로 테스트하고 있음). 속성 'b'는 'this.b'에 의해 생성 될 수 없습니다.

생성자 내부의 중첩 된 함수에서 'this'가 무엇을 참조하는지 궁금하십니까?

+0

http://www.quirksmode.org/js/this.html –

답변

2

직접 함수를 호출하기 때문에이 (가 아닌 객체의 속성으로)와 new 키워드없이, this는 기본 객체 (노드의 웹 브라우저에서 window, global 등)입니다.

live demo on jsfiddle을 참조하십시오.

관련 문제