어휘 범위 지정

  1. 어휘 단계
    1. 어휘의
      1. 소스 코드를 확인 문자
    2. 어휘 범위 지정
      1. 여기서 작성하는 범위 변수를 차단하고 결정하는 코드를 작성할 때
    3. 검색 범위 식별자의 제 매치 정차
      1. 그래서, 같은 이름 식별자를 오버라이드 (override)가있을 것입니다
    4. 범위는 항상 가장 안쪽 범위에서 시작되는 런타임에
      1. 점진적 외향 범위 사슬
    5. 알 따른 범위 체인을 찾을 수없는 변수 최 범위에서 시작 실행 요컨대, 제 OK, 일치하는 식별자가 발견
  2. 어휘 범위 변경
    1. 평가
      • function foo(str, a) {    
             eval(str);    
             console.log(a, b);    
         }
        
         var b = 2;
         foo("var b = 3;", 1);    // 1, 3
    2. 아무 소용이 엄격 모드에서 평가
      • function foo(str) {
            "use strict";
            eval( str );
            console.log( a );    // ReferenceError: a is not defined
        }
        foo( "var a = 2" );
      • 엄격 모드에서는 평가 런타임에 자신의 어휘 범위가
    3. 문자열을 삽입 할 수 선언문을 포함하는 평가 (..)를 태그, 어휘 범위 지정 런타임을 수정
    4. var obj = {
          a: 2,
          b: 3
      };
      
      function fo(obj) {
          with (obj) {
              b  = 5;
          }
      }
      
      var o = {
          b: 33
      };
      
      var p = {
          a: 23
      };
      
      fo(o);
      console.log(o.b);    // 33
      
      fo(p);
      console.log(p.b);    // undefined
    5. 속성을 만들지 않습니다, 속성 B 피하지 않고 개체, O 객체는 속성이 있습니다
    6. 해당 범위로 객체에 대한 참조 문은 객체 식별자 범위의 속성으로, 새로운 런타임 어휘 범위를 작성, 처리하는 .
      1. 평가는 컴파일시에 엔진 범위 효과의 최적화, 그것은 천천히 시작하고.
  3. 범위와 범위 기능 블록
    1. 내부 숨기기 구현

    2. 최소 권한 원칙 (최소 노출의 원칙)

      1. 최소 노출 필요한 내용.
    3. 그래서 모든 변수와 함수는 전역 범위에서 선언

      1. function doSomething(a) {
            b = a + doSomethingElse(a * 2);
        
            console.log(b * 3);
        }
        
        function doSomethingElse(a) {
            return a - 1;
        }
        
        var b;
        
        doSomething(2);    // 15
      2. B 변수 및 함수는 doSomethingElse () 함수 해봐요 () 전용 콘텐츠, 외부 영역에 대한 액세스 기능 숨겨져 개인 콘텐츠 것, 위험 할 수있다.

      3. function doSomething(a) {
            var b;
        
            function doSomethingElse(a) {
                return a - 1;
            }
        
            b = a + doSomethingElse(a * 2);
        
            console.log(b * 3);
        }
    4. 숨겨진 장점

추천

출처www.cnblogs.com/wydumn/p/11575435.html