[英]JS getting variable inside the function
我具有在onClick事件上執行某些操作的功能。
function onDocumentMouseUp( event ) {
createsprite(clickedposition);
}
createsprite(clickedposition) {
var sprite = JSONSPITE // this add correctly sprite to my scene;
//// here timer function 1 sec
setTimeout(function(){ remove(sprite); }, 1000);
}
一切正常。 但是當我單擊不止一次時,我仍然將變量sprite作為最后添加的變量。 (是的,我知道那是正確的)。 從邏輯上講, remove()
僅影響了最后一個。
解決未知數量相同變量的工作的正確解決方案是什么? 目的是按創建順序一秒鍾單擊一秒鍾后,也刪除每個精靈。
即使在每個函數初始化中有更多具有相同名稱的變量,我如何也只能在同一函數中獲得一個變量。
您已將sprite
定義為全局變量。 它不僅會存在於該函數中,還會在window對象上創建。
如果只想刪除在該函數中創建的子畫面,則應將其設為變量
var sprite = JSONSPITE; // typo?
這樣,sprite變量的作用域就是那個函數。
編輯: OP改變了他們的問題,使以前的解釋似乎過時了
如果要創建多個精靈,並將它們存儲在某個位置,以便可以在刪除它們之前對其進行訪問,則可能要創建一個精靈數組。
sprites = [];
function onDocumentMouseUp( event ) {
createsprite(clickedposition);
}
function createsprite(clickedposition) {
sprites.push(JSONSPITE); // Adds the current sprite to the end of the array
setTimeout(function(){
var firstSprite = sprites.shift(); // Takes the first sprite out of the array
remove(firstSprite);
}, 1000);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.