>  기사  >  웹 프론트엔드  >  JavaScript 클로저 시작하기 예제_기본 지식

JavaScript 클로저 시작하기 예제_기본 지식

WBOY
WBOY원래의
2016-05-16 16:50:351118검색

1.

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

functionsay667(){
varnum=666;
varsayAlert=function(){alert(num);}
num ;
returnsayAlert;
}

varsayAlert=say667();
sayAlert();

2.

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

functionsetUpSomeGlobals(){
varnum=666;
gAlertNumber=함수(){alert(숫자);}
gIncreaseNumber=함수(){숫자 ;}
gSetNumber=함수(x){num=x;}
}

setUpSomeGlobals();//세 개의 전역 변수에 값 할당
gAlertNumber();//666
gIncreaseNumber();
gAlertNumber();//667
gSetNumber(12 );
gAlertNumber();//12

3.

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

functionbuildList(list) {
varresult=[];
for(vari=0;ivariiteml='item' list[i];
result.push(function() {alert( 항목 '' 목록[i]);});
}
returnresult;
}

functiontestList(){
varfnlist=buildList([1,2,3]);
for(varj=0;jfnlist[j]() ;
}
}

4.

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

functionsayAlice(){
varsayAlert=function(){alert(alice);}
varalice='HelloAlice';
returnsayAlert;
}

varhelloAlice=sayAlice();
helloAlice();//HelloAlice

5.

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

functionnewClosure(someNum, someRef){
varnum=someNum;
varanArray=[1,2,3];
varref=someRef;
returnfunction(x){
num =x;
anArray. push(num );
alert('num:' num 'nanArray' anArray.toString() 'nref.someVar' ref.someVar);
}
}

closure1=newClosure(40,{someVar:'closure1'});
closure2=newClosure(1000,{someVar:'closure2'});

클로저1(5);
클로저2(-10);

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