찾다

 >  Q&A  >  본문

JavaScript가 전역 개체에서 변수를 선언하면 전역 개체와 동일한 이름의 속성이 되지만, 함수에서 선언하면 그렇지 않습니다. 이유는 무엇입니까?

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

仅有的幸福仅有的幸福2750일 전942

모든 응답(7)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-06-26 11:00:35

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

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

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-26 11:00:35

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

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-06-26 11:00:35

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

    으아악

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-06-26 11:00:35

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

    으아악

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

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-26 11:00:35

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

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-26 11:00:35

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

    회신하다
    0
  • typecho

    typecho2017-06-26 11:00:35

    기능 범위

    회신하다
    0
  • 취소회신하다