JS 에서 정확 한 역할 영역 을 어떻게 찾 습 니까?

1755 단어 JS
난점: 상위 역할 영역 판단: 함수 가 어디서 호출 되 는 지 보 는 것 이 아니 라 함수 가 어디서 작 성 된 지 보 는 것 입 니 다.
function fn (callback) {
    var age = 18;
    callback();
}
fn(function () {
    console.log(age)    // age is not defined
})

먼저 console.log(age) 현재 역할 도 메 인 을 보면 age 가 없습니다. 이전 역할 도 메 인 을 찾 습 니 다. fn 이 아니 라 전체 역할 도 메 인 이지 만 전체 역할 도 메 인 에 age 가 없 기 때문에 인쇄 된 것 은 age is not defined 입 니 다.익명 함수 의 함수 체 는 전역 에 쓰 여 있 기 때문에 fn 에 쓰 여 있 지 않 습 니 다. fn () 의 매개 변수 일 뿐 fn 내부 에 쓰 여 있 지 않 습 니 다.
이런 특징 때문에 어법 작용 역 이 라 고도 부른다.총화: 안에서 밖으로 역할 영역 을 찾는다.현재 역할 영역 이 있 는 지, 없 는 지 를 먼저 보고 이전 역할 영역 을 찾 습 니 다. 있 으 면 검색 을 중단 합 니 다. 만약 에 이전 역할 영역 을 찾 지 않 으 면 전체 역할 영역 을 찾 을 때 까지 찾 습 니 다.
참고 자료
  • 개 강 하 자 4 기 JS
  • 좋은 웹페이지 즐겨찾기