도와 줘서 고마워. 내가 사용 개념의 정확한 이름을 모르는 죄송합니다.
이 같은 기능을 가지고있다.
var counter = function() {
var count = 0;
function changeCount(number) {
count += number;
}
return {
increase: function() {
changeCount(1);
},
decrease: function() {
changeCount(-1);
},
show: function() {
alert(count);
}
}
};
지금, 나는이 기능을 가진 거 메이크업 '3'이야, 두 가지 방법이 보인다.
1)
counter().increase()
counter().increase()
counter().increase()
counter().show()
나는이 '3'을 밖으로 던져 것 짐작하지만, 대답은 '0'입니다.
2)
var another = counter();
another.increase();
another.increase();
another.increase();
another.show()
지금은 대답을 '3'을 반환합니다. 그리고 여기 내 질문입니다. 사실상, 변수 "또 다른"그냥 동일한 "카운터 ()". 그럼, 왜 대답이 다른 온?
이전 코드 (카운터 (). 증가 ())를 호출하는 것 '수'위로 'O'의 모든 3 개 선 후 '카운터 (). 증가 ()'. 반면 'another.increase ()'변수 '카운트'의 변화를 쌓아 올린 것으로 보인다. 두 코드 사이의 차이는 단지 " '또 다른'() 카운터와 동일 변수"라고한다. 왜이 서로 다른 대답을 선도?
카운터 기능이 무엇 봐.
그런 다음 일부 기능을 반환, 0으로 설정하고, 변수를 만듭니다.
당신이 카운터 번 호출하는 경우, 그것은 한 번 것으로한다. 당신이 그것을 세 번 호출하는 경우, 그 세 번한다.
(다음 호출 .increase()
의 반환 값에 ... 그리고 첫 번째 예에서의 그 세 가지 다른 일을 하지만 두 번째로,이 같은 일마다입니다).
아니면 다른 방법을 넣어.
경우라고 할 때마다 counter
당신은 백지를 가지고 가고 당신의 앞에 내려 놔. 그리고 당신은 전화 할 때마다 increase
당신은 당신의 앞에 종이 조각에 틱을 끌었다.
당신도 각에 진드기와 종이의 세 가지 또는 세 가지 틱으로 종이의 한 조각으로 끝낼 것입니다.