최상위 함수가 window
개체의 멤버이고 그 내부에 this
이 window
을 참조한다는 사실과 일치합니다.최상위가 아닌 함수가 모든 객체의 멤버입니까?
최상위 수준이 아닌 함수의 경우 this
은 여전히 window
이지만 window
의 멤버가 아닙니다! inner
만약
function topLevel1() {
alert(this)
}
function topLevel2() {
function inner() {
alert(this)
}
inner()
}
topLevel1() // alerts DOMWindow
alert(window.topLevel1) // alerts text of topLevel1, as expected
topLevel2() // again, alerts DOMWindow
alert(window.inner) // undefined
alert(window.topLevel2.inner) // undefined
- 누구의 회원 그것이
window
의 멤버도topLevel2
의도는 다음과 같습니다 는 일부 코드입니까? - 어떻게
this
이window
일 수 있습니까? 그렇지만window
의 회원이 아니십니까? - 자바의 법칙이
this == owner
인 경우owner.
을 통해 현재 메소드가 호출 되었습니까? (등 생성자apply
,call
같은 특별한 경우를 제외하고)
보다 ks, 지금은 분명 해요. – Fixpoint
JS가 'this == obj'라는 이름의 함수'f'를 호출하는 구문'obj.f'를 허용하지 않는 이유를 이해하지 못 하겠지만 말입니다. – Fixpoint
그걸 무시하면'.'은 회원 전용입니다. – Fixpoint