-3
클로저에있는 배열이 있고 그 클로저가 콜백으로 전달 된 경우 배열에 대한 변경 내용이 콜백에 표시됩니까?클로저를 사용하여 콜백에서 변수에 대한 변경 사항을 볼 수 있습니까?
예.
function ctor (func) {
this.func = func;
}
ctor.prototype.do = function() {
this.func();
}
var arr = [];
function doSomethingWithArr() {
for (var i = 0; i < arr.length; ++i) {
console.log(arr[i]);
}
}
var a = new ctor(doSomethingWithArr);
a.do(); // should print nothing
arr.push("Hello");
arr.push("World");
a.do();
// expect:
// "Hello"
// "World"
내가 질문을 물었다 이유 때문에이 시도하고 심지어 내 타이핑 실수를 수정 한 후 작동하지 후 : console.log(i)
->console.log(arr[i])
을, 비슷한 질문을 여기에 검색 나는 아무것도 찾을 수 없습니다.
감사합니다. 나는 뭔가 잘못된 것이 있다고 생각합니다. 위의 예는 나를 위해 작동하지 않는 것 같습니다. – Hector
@Hector : 흠,'arr [i]'로 편집 했으므로 그대로 코드를 콘솔에 복사 할 때 예상되는 내용을 정확하게 기록합니다 – Bergi