아래 범위의 범위는 창 범위를 사용하여 호출하는 것이 작동하지 않으므로 어떻게됩니까?이 JavaScript 함수의 범위는 무엇입니까
또한 함수, 개체 또는 변수의 범위를 찾는 방법을 알려주십시오.
아래 범위의 범위는 창 범위를 사용하여 호출하는 것이 작동하지 않으므로 어떻게됩니까?이 JavaScript 함수의 범위는 무엇입니까
또한 함수, 개체 또는 변수의 범위를 찾는 방법을 알려주십시오.
자바 스크립트는 기능 수준 범위를가집니다. 코드를 살펴 보겠습니다. 코드에서 두 개의 함수를 정의합니다. 첫 번째 함수는 no-name 함수이며 $(document).ready
에 대한 콜백으로 전달됩니다. 콜백 함수이라고합시다. a
은이 콜백 함수 내부에 정의되어 있으므로 로컬 범위에 있습니다. 따라서 a
은 콜백 함수 내부에서만 참조 할 수 있습니다.
경고를 정의한 후 a
을 호출합니다. 그런 다음 전역 개체 ()에서 a
에 대한 참조를 얻으려고하면 전역 적으로 정의 된 모든 항목이 브라우저에서 window
이됩니다. a
은 전 세계적으로 정의되어 있지 않으므로 window
에서 검색 할 수 없습니다. 실제로 null
을 검색하고 ()
을 사용하여 콘솔을 호출 할 때 콘솔에 TypeError: window.a is not a function
이 표시됩니다.
a는 준비 콜백 – dandavis
에 표시된 개인 변수 (함수 유형)입니다. 범위가있는 것은 함수뿐입니다. 함수는 자신과 모든 외부 함수의 범위를가집니다. 창은 줄 끝입니다. – dandavis
이 함수의 범위는'document' 객체입니다. 'document! == window' 그러므로'window [ "a"]'를 사용할 수 없습니다. – dfsq