我有一个相当奇怪的问题,我一直无法找到解决方案。这可能是因为没有人遇到过这个问题,也可能是因为我对 Google 的内容很迷茫。
事情是这样的。我正在构建一个石头剪刀布机器学习演示,并且我有两个对脚本很重要的 JavaScript 对象。这两个对象是winners
(存储什么击败什么的对象)和history
(跟踪所有比赛)。
在我的脚本的最顶部,我创建了这两个对象,如下所示:
var winners = {
}
var history = {
}
现在我开始解决问题了。我已经完成了其余的代码,但这无关紧要,因为当我将其注释掉时,并且由于我使用的是 p5.js,所以我有一个预加载函数,只需打印出两个对象即可。
function preload(){
console.log(winners);
console.log(history);
}
然后我进入 Chrome 并运行使用该脚本的 html,打开控制台。我应该看到:
Object {}
Object {}
但是不!
Object {}
History {length: 1, scrollRestoration: "auto", state: null}
winners 对象只是一个空对象,但我的历史对象有一个长度属性以及其他一些东西。我保证,我的所有其他代码都被注释掉了。
为什么我的历史对象中有这些东西,我怎样才能摆脱它?
最佳答案
浏览器包含一个 window.history
对象,这是您在控制台日志中看到的内容。在此处查看有关此对象的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/history
要避免此问题,请为历史对象使用稍微不同的名称。
关于javascript - 我的 JavaScript 对象有一个我没有分配的长度字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053270/