>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술의 폐쇄 원리 분석

JavaScript_javascript 기술의 폐쇄 원리 분석

WBOY
WBOY원래의
2016-05-16 18:32:551089검색

정의를 살펴보겠습니다.
클로저
소위 "클로저"는 많은 변수와 이러한 변수에 바인딩된 환경을 포함하는 표현식(일반적으로 함수)을 의미하므로 이러한 변수도 표현식 부분입니다. 공식.
이것은 JavaScript의 클로저가 컨텍스트를 포함하는 함수라는 것을 보여줍니다. 즉, 이 함수의 기반은 선형 대수학을 뛰어넘을 수 없습니다. 느낌?
다른 관점에서 보면 폐쇄의 기능은 OO를 달성하는 것이다. 자바스크립트에는 C처럼 public, private, protected 속성 표시가 없어 클래스를 구축하기가 어렵습니다. "클래스는 동작이 있는 데이터이고, 클로저는 데이터가 있는 동작입니다." JavaScript에서는 클래스 정의를 함수 정의로 바꾸고, setter/getter 메서드를 클로저로 바꿉니다. 라이브코드를 살펴보세요:

코드 복사 코드는 다음과 같습니다:

함수 f1(){
var n=1;
function getter(){
Alert(n);
}
return getter; 및 함수 getter가 일반적인 클로저를 형성합니다. 마지막으로 반환되는 함수, 방금 언급한 "동작"은 실제로 n 값을 가져오도록 의도되었으므로 클로저는 데이터에 대한 동작입니다.
또한 Ruan Yifeng이 클로저에 대해 말한 내용도 매우 간결하다고 생각합니다. "제가 이해하는 바는 클로저가 다른 함수의 내부 변수를 읽을 수 있는 함수입니다."
또 다른 학문적인 설명:

http://demo.jb51.net/js/javascript_bibao/index.htm

클로저에 대한 모든 정의는 해석과 단순화가 모두 부분적이므로 학문적 정의에서 클로저를 실제로 이해할 수 있기를 바랍니다. 자바스크립트 해석.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.