javaScript 사용 (4) 패키지 닫 기
1668 단어 JavaScriptWeb폐쇄 하 다
외부 함수 의 변 수 를 방문 할 수 있 습 니 다. 만약 에 어떤 함수 가 내부 함수 의 인용 을 되 돌려 준다 면 외부 에서 부분 변 수 를 간접 적 으로 사용 할 수 있 습 니 다.
예 를 들 면:
function closure(){
vari=5;
i++;
alert(i);
}
// closure i 。 6
closure();
closure();
}
패 킷 을 닫 으 면 함수 체 내 에서 설명 하 는 함수 로 간단하게 이해 할 수 있 습 니 다.
만약 우리 가 방법 밖에서 i 를 증가 시 키 려 면 어떻게 합 니까?
이렇게 정의 할 수 있어 요.
function closure(){
vari=5;
function iIncrement(){
i++;
alert(i);
}
return iIncrement;
}
var v=closure();
v();// 6
v();// 7
closure 함수 에서 iIncrediment 함 수 를 정의 하고 이 함수 대상 을 되 돌려 줍 니 다.
매번 호출 할 때마다 i 에 게 누적 을 하고 외부 에서 변 수 를 조작 했다 는 것 을 설명 하 며 i 는 메모리 에 계속 있 습 니 다.
이것 도 역시 폐쇄 적 인 상용 기능 이다
패 킷 을 만 들 때마다 새로운 역할 영역 과 새로운 개인 변 수 를 만 들 고 서로 간섭 하지 않 습 니 다.
다음 에 우 리 는 종합 적 인 예 를 분석 합 니 다. 만약 에 우리 가 계산기 의 함 수 를 만 들 고 모든 함수 의
호출 은 모두 호출 자의 결과 에 만 영향 을 미친다.
패키지 종합 예
function counter(){
var n=0;
return {
count:function(){n++},
reset:function(){n=0},
get:function(){alert(n)}
}
}
conter 함 수 를 만 들 었 습 니 다. 그 안에 세 개의 패 킷 함 수 를 만 들 었 습 니 다. 각각 n 이라는 변 수 를 참조 하 였 습 니 다. 다음.
보, 우리 테스트 해 보 자.
var t1=counter();
var t2=counter();
t1.count();
t1.get();// 1
t2.count();
t2.get();//1
t2.count();
t2.get();//2
t1.reset();
t1.get();//0
t2.get();//2
우리 가 각각 만 든 것 을 알 수 있다.
t1,t2
각각 조작 한 후 각자 의 사유 변수 에 아무런 영향 을 주지 않 는 다.(연상 할 수 있다.
java
의
get
화해시키다
set
방법
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.