찾다

 >  Q&A  >  본문

자바스크립트 범위 체인

으아악

결과가 월드가 아닌 헬로인 이유

阿神阿神2741일 전545

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

  • 滿天的星座

    滿天的星座2017-05-19 10:30:18

    으아악

    회신하다
    0
  • PHPz

    PHPz2017-05-19 10:30:18

    으아악

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-19 10:30:18

    obj 개체에 작성된 str:"world"는 obj.str="world"를 의미하기 때문입니다. 이는 변수가 아니라 속성입니다. 마지막으로 실행한 obj.fun()에서 나타나는 것은 속성이 아닌 str 변수입니다(물론 이는 전역 창의 속성이기도 합니다). 이해하셨나요? this.str 또는 obj.str에 경고하면 "world"를 얻을 수 있습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-05-19 10:30:18

    str 변수는 실제로 window의 속성이며 obj 개체의 str 속성과 아무 관련이 없습니다. 여기에는 범위 체인 문제가 포함되지 않습니다. 다음 사항을 이해해야 합니다.

    으아악

    이 예에서는 전역 변수 str이 함수 변경 시 먼저 재할당됩니다. 경고(str)를 실행하려면 자신의 범위 체인의 시작점, 즉 자신의 변수에서 str 변수를 찾습니다. 찾을 수 없으면 계속해서 레벨 1 검색을 통해 str 변수를 찾았지만 현재 str이 world에 다시 할당되었으므로 world가 나타납니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-05-19 10:30:18

    으아악

    이해하셨나요?

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