JavaScript: 全局变量似乎被覆盖了
JavaScript: Global variable seems to be overwritten
我目前正在编写以下代码,它应该只保存第一个位置。之后检测到的任何内容都应忽略:
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)
正确执行,全局变量似乎每次都在变化,标记被检测到。
这是一些 console output。
This post was originally posted by VLAZ as a comment.
您正在分配一个对象,这意味着它可以自由更改而无需您重新分配。如果您需要维护对象的具体状态,则需要对其进行克隆或仅从中获取所需的原始值。
我目前正在编写以下代码,它应该只保存第一个位置。之后检测到的任何内容都应忽略:
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)
正确执行,全局变量似乎每次都在变化,标记被检测到。
这是一些 console output。
This post was originally posted by VLAZ as a comment.
您正在分配一个对象,这意味着它可以自由更改而无需您重新分配。如果您需要维护对象的具体状态,则需要对其进行克隆或仅从中获取所需的原始值。