我正在尝试覆盖访问 localStorage 的点符号。 我已经设法覆盖 getItem 和 setItem 方法,如下所述:Is it possible to override Local Storage and Session Storage separately in HTML5?
现在我尝试创建一个代理来捕获点访问,但是因为我似乎无法像这里尝试的那样覆盖 localStorage 对象
localStorage = new Proxy(localStorage, {
get: function(target, name) {
if (!(name in target)) {
console.log("Getting non-existent property '" + name + "'");
return undefined;
}
return '123';
},
set: function(target, name, value) {
if (!(name in target)) {
console.log("Setting non-existent property '" + name + "', initial value: " + value);
}
target[name] = value;
}
});
现在,当我尝试时,我仍然得到测试而不是 123:
localStorage.testKey = "test";
alert(localStorage.testKey)
最佳答案
如果您在 localStorage 上定义 getter,它应该可以工作:
Object.defineProperty(window, "localStorage", new (function () {
this.get = function() {
console.log("I'm getting called");
}
})());
关于javascript - 覆盖 localStorage 的点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888685/