gpt4 book ai didi

javascript - firebug 错误地告诉我我的变量没有定义

转载 作者:搜寻专家 更新时间:2023-11-01 04:34:13 25 4
gpt4 key购买 nike

我在下面显示“断点”的代码中设置了一个断点。还为 dataStore 添加了一个 watch 表达式。

function(){
var self = {};
var dataStore = [];
var areEq = UNAB.objectsAreEqual;

self.put = function(key, value){
/*breakpoint*/ dataStore.push({key:key, value:value});
}
return self;
}

在这个断点处,Firebug 告诉我“ReferenceError: dataStore is not defined”。尝试检查“areEq”的结果相同。但是,dataStore.push 执行时没有错误。另一个奇怪之处:为“self”添加一个 watch 表达式显示的不是我期望的具有一个属性“put”的 self 对象,而是“window”对象。

知道到底发生了什么吗?

最佳答案

我认为这是一个 Firefox 错误。如果你设置一个断点 变种数据存储= [];然后继续,当在 put() 中遇到断点时。你得到一个闭包范围(在 Firebug 1.6 中)。该范围具有 dataStore 和 self。我认为 Firefox 正在优化闭包范围,也许是因为代码无论如何都是无稽之谈:没有办法访问数据存储。

一个完整的测试用例最终会出现在 http://getfirebug.com/tests/script/stackoverflow/dataStoreIsNotDefined.html

另见 https://developer.mozilla.org/en/DOM/window.self

关于javascript - firebug 错误地告诉我我的变量没有定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com