초보자 용 질문. 아마도 사소한 질문 일 것입니다.자바 스크립트 변수의 범위 (XUL 관련)
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript" src="chrome://.../main.js"/>
<button label="Click me!" oncommand="clickhandler()"/>
</window>
자바 스크립트 코드 :
// main.js
var test = "Peanut butter"; // a global variable
function clickhandler() {
alert(test);
}
인터프리터 그냥 메인 윈도우의 시작 태그를 읽은 후 자바 스크립트 파일을 처리 한 후 XUL 코드의 나머지 부분과 진행 여기 XUL의 코드입니다. 제 의견으로는 test
변수는 인터프리터가 main.js
처리를 마치는 순간에 범위를 벗어나야합니다. 또한 clickhandler()
함수도 범위를 벗어나야합니다. 즉, 버튼을 클릭하면 아무 것도 나타나지 않아야합니다. 글쎄, 내가 예를 들어 document.test
과 document.clickhandler()
으로 선언하지 않는 한. 그러나, 간단한 실험은 틀린 나를 증명했다. 버튼을 클릭하면 함수와 변수가 모두 존재합니다. 이와 같이 선언 된 변수의 실제 수명은 얼마입니까? 그들이 언제 파괴 되었습니까? 신청서가 끝날 때까지 주변에 있습니까? 모범 사례 및 참고 문헌은 높이 평가됩니다.
여기에 좋은 참고 자료가 있습니다. http://stackoverflow.com/questions/39691/javascript-best-practices. 함수 외부의 "var"가없는 것은 "window"네임 스페이스 (예 : window.test, window.clickhandler)에 정의됩니다. – fenone