簡體   English   中英

JavaScript:全局變量似乎被覆蓋

[英]JavaScript: Global variable seems to be overwritten

我目前正在處理以下代碼,它應該只保存第一個 position。 之后檢測到的任何內容都應忽略:

var markerPos;
var markerAlreadyDetected = false;

AFRAME.registerComponent('barcode_marker', {
    init: function () {
        const marker = document.querySelector('#marker');

        marker.addEventListener('markerFound', function () {
            console.log("Marker Already Detected:", markerAlreadyDetected);

            if (!markerAlreadyDetected) {
                markerAlreadyDetected = true;
                markerPos = marker.getAttribute('position');
                console.log("Saved new marker location.", markerPos);
            } else {
                console.log("Already detected marker.");
            }

            console.log("Saved marker position:", markerPos);
        });
    }
});

即使if(!markerAlreadyDetected)正確執行,全局變量似乎每次都在變化,標記被檢測到。

這是一些控制台 output

這篇文章最初是由VLAZ作為評論發布的。

您正在分配 object,這意味着它可以自由更改而無需重新分配。 如果您需要維護 object 的具體 state,則需要對其進行克隆或僅從中獲取所需的原始值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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