[英]Variable is undefined despite being initialised and passed to function
不知道我哪里出問題了。
我有以下代碼,該代碼每1-2秒在頁面上創建一個“氣泡”,然后在6秒后銷毀每個氣泡。
該代碼通常可以正常工作,但變量bubbleID
盡管已初始化但仍顯示為undefined
。
function startBubbleMachine(){
var bubbleID = 1;
setInterval(function makeBubble(bubbleID){
var wh = randomInt(143, 50);
console.log('making bubble number '+bubbleID); // this shows undefined
$('.wrapper').append('<div class="db-bubble db-bubble-'+bubbleID+'" style="transform:rotate('+randomInt(20, 1)+'deg);left:'+randomInt(100, 1)+'%;width:'+wh+'px;height:'+wh+'px;"></div>');
killBubble(bubbleID);
bubbleID++; // this doesn't seem to get used
}, randomInt(2000, 1000));
}
我正在將bubbleID
初始化為1:
var bubbleID = 1;
然后,我在setInterval
中的函數中傳遞bubbleID
setInterval(function makeBubble(bubbleID){
...
});
然后在該函數中增加它:
bubbleID++;
我要去哪里錯了?
通過在匿名函數中包含一個名稱相同的參數,可以隱藏var bubbleID
變量。 擺脫形式參數。
setInterval(function makeBubble( ){
// ^
包括該參數名稱不傳遞變量; 它只是說函數期望參數被傳遞。 但是, bubbleID
,因為該計時器函數中的代碼可以通過關閉“看到” bubbleID
變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.