자 바스 크 립 트 의 패키지 소개

3081 단어
패 킷 이란 내부 함수 가 현재 함수 이외 의 변 수 를 읽 는 것 을 말 합 니 다. 즉, 생 성 할 때 있 는 문맥 환경 입 니 다.
 
  
function hello(){
    var char = "hello,world";
    function print(){
        console.log(char);
    };
    return print();
}

주의해 야 할 것 은 이 print 함수 가 외부 hello 함수 의 char 변 수 를 참조 하 였 기 때문에 여기 서 우 리 는 하 나 를 되 돌 릴 수 있 습 니 다.
 
  
hello,world

이 기능 은 어떤 의미 에서 작용 역 에 공 을 돌려 야 한다.물론, 우 리 는 이 변 수 를 설명 할 때 오류 가 발생 하지 않 는 한 char 에 직접 접근 할 수 없습니다.... 와 같다
 
  
function hello(){
    char = "hello,world";
    function print(){
        console.log(char);
    };
    return print();
}

단지 var 가 하나 빠 졌 기 때문이다.
 
  
hello 。 。 : , 。 。

Javscript 폐쇄 및 this
주의해 야 할 것 은 this 와 arguments 를 읽 을 때 문제 가 생 길 수 있 습 니 다.
 
  
function hello(){
    this.char = "hello,world";
    function output(){
        char = "I'm no hello world";      
        console.log(this.char);
    };
    return output();
}

물론 이 예 는 적절 하지 않 습 니 다. so, 우 리 는 이 문 제 를 설명 하 는 추가 적 인 예 가 필요 합 니 다. 다음은 중의 한 예 를 인용 하여 이 문 제 를 설명 하 겠 습 니 다.
 
  
var name = "The window";

var object = {
    name: "My Object",

    getNameFunc: function(){
        return function(){
            return this.name;
        }
    }
};
object.getNameFunc()()


다만 이러한 용법 은 실제 적 이 고 해결 방법 은 바로 임시 변 수 를 저장 하 는 것 이다. 예 를 들 어 전에 라 는 글 에서 말 한 것 과 같다.
 
  
var name = "The window";
var object = {
    name: "My Object",

    getNameFunc: function(){
        var that = this;
        return function(){
            return that.name;
        }
    }
};
object.getNameFunc()()


Javscript 패키지 와 읽 기 쓰기 변 수 는 우리 가 변 수 를 잘 처리 하지 않 았 을 때 도 변 수 를 수정 할 수 있 습 니 다.
 
  
function hello(){
    var char = "hello,world";
    return{
        set: function(string){
            return char = string;
        },
        print: function(){
            console.log(char)
        }
    }
}
var say = hello();
say.set('new hello,world')
say.print() // new hello world

자 바스 크 립 트 패키지 및 성능
MDC 표현 참조
 
  
  , , , , 。

글 에 도 언급 되 어 있다.
 
  
  , , , 。 , ( , )。

좋은 웹페이지 즐겨찾기