2010-07-03 3 views

답변

4

에 대한 별칭으로 self의 가용성에 의존하지 않고, window.locationdocument.location와 같은 객체입니다

//[in global scope] 
var self = new SomeObject; 
alert(self.loction); //undefined 

//in a constructor 
function SomeObject(){ 
    var self = this; 
    alert(self.location); //undefined 
} 

결론 보인다.

따라서 표현식을 true로 설정할 수있는 유일한 방법은 self 또는 document 중 하나를 다시 정의하는 것입니다.

+0

및 window는 전역 객체의 참조 인 전역 객체의 속성입니다. DOM에는 신비가 가득합니다. :) – galambalazs

1

범위에 따라 다르다고 가정합니다. 내가 아는 한 객체 또는 전역 범위에서 self을 정의 (다시 정의)하는 것이 가능하므로이 경우 self.location은 아무 것도 가리 키지 않습니다. 이처럼 : 맹목적으로 window.self 속성 window 다시 참조입니다 document

0

document.location은 문자열 인 이며 개체가 아닌 이며 document.URL로 대체되었습니다.

서버에서 리디렉션되는 URL은 window.location, 을 업데이트 할 필요가 없지만 document.URL은 항상 현재 문서의 경로를 표시합니다.

0

댓글을 게시 할 수 없으므로 분명히 self.location == document.location == window.location 프레임에 있습니다. top.location 만 다릅니다. (Firefox 3.6.6 및 Internet Explorer 8에서 테스트 됨)

관련 문제