我的游戏中有速度元素,但每当失败时,它都会刷新页面。 我不希望人们在每次刷新页面时都必须重新设置速度。 刷新页面后,如何保持变量不变?
谢谢
答案 0 :(得分:0)
在这里,这可以解决问题。只是不要直接通过变量设置速度,而是使用setSpeed
函数,该函数也会更新本地存储。
let speed = localStorage.getItem('speed') ? Number(localStorage.getItem('speed')) : 0; // or whatever your default speed is
function setSpeed(newSpeed) {
speed = newSpeed;
localStorage.setItem('speed', newSpeed);
}
另一种解决方案是使用get
和set
方法,这种方法更加优雅,一旦设置了速度,它将自动存储在本地字符串中。
(function() {
let _speed = localStorage.getItem('speed') ? Number(localStorage.getItem('speed')) : 0;
Object.defineProperty(this, 'speed', {
get: function() {
return _speed;
},
set: function(speed) {
_speed = speed;
localStorage.setItem('speed', speed)
return true;
}
});
})();