2014-12-14 2 views
-5

아래 범위의 범위는 창 범위를 사용하여 호출하는 것이 작동하지 않으므로 어떻게됩니까?이 JavaScript 함수의 범위는 무엇입니까

또한 함수, 개체 또는 변수의 범위를 찾는 방법을 알려주십시오.

+0

a는 준비 콜백 – dandavis

+0

에 표시된 개인 변수 (함수 유형)입니다. 범위가있는 것은 함수뿐입니다. 함수는 자신과 모든 외부 함수의 범위를가집니다. 창은 줄 끝입니다. – dandavis

+0

이 함수의 범위는'document' 객체입니다. 'document! == window' 그러므로'window [ "a"]'를 사용할 수 없습니다. – dfsq

답변

0

자바 스크립트는 기능 수준 범위를가집니다. 코드를 살펴 보겠습니다. 코드에서 두 개의 함수를 정의합니다. 첫 번째 함수는 no-name 함수이며 $(document).ready에 대한 콜백으로 전달됩니다. 콜백 함수이라고합시다. a은이 콜백 함수 내부에 정의되어 있으므로 로컬 범위에 있습니다. 따라서 a은 콜백 함수 내부에서만 참조 할 수 있습니다.

경고를 정의한 후 a을 호출합니다. 그런 다음 전역 개체 ()에서 a에 대한 참조를 얻으려고하면 전역 적으로 정의 된 모든 항목이 브라우저에서 window이됩니다. a은 전 세계적으로 정의되어 있지 않으므로 window에서 검색 할 수 없습니다. 실제로 null을 검색하고 ()을 사용하여 콘솔을 호출 할 때 콘솔에 TypeError: window.a is not a function이 표시됩니다.

관련 문제