>  기사  >  웹 프론트엔드  >  클로저에 대한 대중적인 이해 - 5Clay

클로저에 대한 대중적인 이해 - 5Clay

一个新手
一个新手원래의
2017-10-09 09:54:501565검색

클로저에 대해 말하자면, js 함수의 변수 범위를 포함하며, 이는 로컬 변수와 전역 변수로 구분됩니다. 함수 외부의 변수는 함수 내부에서 직접 읽을 수 있지만, 함수 내부의 변수는 함수 외부에서 직접 읽을 수 없습니다.

하지만 때로는 함수의 지역 변수를 가져와야 하므로 클로저가 생성됩니다. 클로저는 다음 코드와 같이 함수 내부에 다른 함수를 정의하는 것입니다.

var foo=(function () {

     var a="11";

     return{
         get_a:function () {
             return a;
         },
         new_a:function (newValue) {
             a=newValue;
         }
     }
} ())
 console.log(foo.a) //输出undefined,因为函数外部不能直接访问内部的局部变量
 console.log(foo.get_a())//输出11
 foo.new_a("我是通过闭包改变的值")//调用并且传参
 console.log(foo.get_a()) //输出我是通过闭包改变的值

이 방법으로 내부를 가져올 수 있습니다. 외부의 함수는 지역 변수입니다. 위 함수에서 return 내부의 함수는 클로저입니다.

위 내용은 클로저에 대한 대중적인 이해 - 5Clay의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.