JavaScript가 전역 개체에서 변수를 선언하면 전역 개체와 동일한 이름의 속성이 되지만, 함수에서 선언하면 그렇지 않습니다. 이유는 무엇입니까?
仅有的幸福
仅有的幸福 2017-06-26 10:58:35
0
7
848

JavaScript에서는 전역 변수가 전역적으로 선언된 후 동일한 이름을 가진 전역 개체의 속성이 됩니다. 그런데 함수에서 지역변수를 선언한 후에는 함수(객체)의 속성이 되지 않는데, 대신 "함수명.속성명"을 이용하여 선언해야 하는 이유는 무엇인가요?

仅有的幸福
仅有的幸福

모든 응답 (7)
洪涛

다음과 같이 이해될 수 있습니다.

함수 내부에 선언된 변수는 함수 객체가 아닌 함수 실행 컨텍스트 객체에 속합니다.
전역 환경에서 선언된 변수는 전역 실행 컨텍스트 객체에 속하며, 이 컨텍스트 객체는 전역 환경 객체입니다

    我想大声告诉你

    이유는 없습니다. 이것이 규칙입니다.

      巴扎黑

      역사적 문제는 혼란을 없애기 위해 엄격 모드를 사용하는 것이 좋습니다.

      으아악
        大家讲道理

        이것을 의미한다면
        `기능 테스트(){

        으아악

        }`
        //업데이트, 오류 수정.
        질문자분께서 기본을 잘 보시고 계시네요.

          我想大声告诉你

          이건 함수 변수의 범위 문제인 것 같아요. js는 정말 유연해서 함께 배워보면 좋겠어요^~^ ^~^

            淡淡烟草味

            JavaScript에서는 전역 변수가 전역적으로 선언된 후 동일한 이름을 가진 전역 개체의 속성이 됩니다. 함수에서 지역 변수를 선언한 후에는 해당 함수의 속성인 로컬 객체가 되기 때문에 먼저 해당 함수에 전역적으로 접근한 후 함수 내의 지역 변수에 접근해야 합니다.

              typecho

              기능 범위

                최신 다운로드
                더>
                웹 효과
                웹사이트 소스 코드
                웹사이트 자료
                프론트엔드 템플릿
                회사 소개 부인 성명 Sitemap
                PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!