그래서 난이 (myFuncs 배열 참조)자바 스크립트 클로저 - 인생의 함수 내에서 "계수 '의 사본을 저장할 수 없습니다
내가 원하는 둘 사이의 함수 선언에 0에서 4로 변경 글로벌 VAR라는 수입니다. 클로저를 만들고 첫 번째 함수에 대해 0, 두 번째 함수에 4를 저장합니다.
어쨌든 IIFE (Immediately Invoked Function Expressions)를 사용하여 새 어휘 범위를 만들고 복사본을 저장하더라도 (as j)와 함께, 그들은 여전히 count = 4를 가리키고 있으므로, 함수가 실행될 때 첫 번째 함수와 두 번째 함수는 모두 예상 한대로 "My value : 4"를 두 번 인쇄합니다.
"내 값 : 0" "내 값 : 4"
var myFuncs = {};
var count = 0;
myFuncs[0] = function(){
(function(){
var j = count; //create a closure over the count value and save it inside the IIFE scope
console.log("My value: " + j); //expecting j to be 0
})();
}
count = 4; //Update value inbetween two function declarations
//same as above but the j here should be 4
myFuncs[1] = function(){
(function(){
var j = count; //create a closure over the count value and save it inside the IIFE scope
console.log("My value: " + j);
})();
}
myFuncs[0](); //My value: 4
myFuncs[1](); //My value: 4
패스)}'같은 수() 계산; '와 (함수 ('처럼 허용 횟수)'{I가 카운트 범위 체인 올라가고 중첩 영역을 통해 접근 알았는데 – Rajesh