以下腳本輸出1 2 3 4 5 6 7 ..我假設它會輸出0 1 2 3 4 5 ...爲什麼在傳遞迴調時,此對象調用函數的Javascript setInterval不計算內部參數?
事實上,在我的實際代碼中,我相信print(lostCnt)總是連接到最新的(像全球一樣)最後一次計數更新。爲什麼是這樣?我能做些什麼來讓它保持實際的cnt約束,我不能修改obj1中的任何代碼。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function obj1(parameter, callback){
setTimeout(callback, parameter);
}
function caller(){
function miscFunction(cnt){
document.getElementById("main").appendChild(document.createTextNode(cnt));
}
var lostCnt = 0;
setInterval(
function(){
new obj1(5,
function(){
miscFunction(lostCnt);
});
lostCnt++;
},5000
);
}
</script>
</head>
<body onload="caller();">
<div id="main">
</div>
</body>
</html>
謝謝,這是我的第一篇文章
顯示我的代碼。 – corazza 2012-07-14 00:59:22
對不起,剛添加了代碼 – 2012-07-14 00:59:56