당신은 어떻게해야 : 무엇을 어떻게하면 그렇게 내가의 상태를 유지하는 등 폐쇄라고 무언가를 창조한다는 것이다
var o = {};
for(var i = 0; i < 5; i++) {
(function(i) { // <- self-executing anonymus function with a parameter i
o[i] = function() {
console.log(i); // <- i here will be the argument i,
// not the i from the loop
};
})(i); // <- pass i as an argument
}
o[3]();
.
폐쇄는 내부 함수가 외측 함수에 대한 참조를 유지하고 있으므로 그 변수합니다 (외부 함수 반환 후에도) 매개 변수에 대한 액세스를 얻는 것을 의미한다. 폐쇄
일반의 예는 다음과 같습니다
function outer(arg) {
var variable = 5;
arg = 2;
function inner() {
alert(variable); // <- the inner function has access to the variables
alert(arg); // and parameters of the outer function
}
}
자체 실행 (자동 호출, 또는 즉시) 함수가 선언 된 직후에 호출되는 함수입니다.
(function() {
alert("executed immediately");
})();
둘의 조합 만 기능은 자바 스크립트 범위을 가지고 있다는 사실은, 내가의 상태를 유지하는 새로운 기능을 가진 범위을 만들기 위해 위에서 언급 한 기술로 리드 그렇지 않으면 클로저 때문에 내부 함수에 의해 변경됩니다.
고맙습니다. – fent