>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 학습_자바스크립트 스킬의 클로저 분석

자바스크립트 학습_자바스크립트 스킬의 클로저 분석

WBOY
WBOY원래의
2016-05-16 18:14:511116검색

ECMAScript에서 함수 선언에서 선언되고 함수 외부에 표시되는 모든 변수는 함수 내부의 최종 값에 액세스할 수 있습니다!

클로저 함수는 변수의 최종값에만 접근할 수 있습니다!!!

예:

function fnTest(arr) {
for (var i=0;i < arr.length;i ) {
arr[i]=function () { Alert(i " | " arr[i]); };
 }
}
var arr = [0,1,2,3];
fnTest(arr);
for (var i=0; i < arr.length;i ) {
arr[i](); //항상 4를 출력하고 정의되지 않은 값이 있습니다함수가 종료된 후 i 값은 4이므로 액세스된 값은 다음과 같습니다. 4개만

//4연속 결과가 나옵니다. "4|undefine"
}

클로저 내부에서 클로저 외부의 변수 값에 접근할 수 있을 뿐만 아니라 해당 값을 설정할 수도 있습니다.

예:

function fnTest() {
var a="June";
return {
set:function (param) {a = param},
get:function () {return a}
 };
}
var obj = fnTest();
Alert(obj.get());//6월 팝업

obj.set(586);
Alert(obj.get());//팝업 586

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