簡體   English   中英

JS在函數內部獲取變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM