为什么我的“下一个”属性在Firefox 3.6的JavaScript哈希中消失了

时间:2011-03-06 00:17:39

标签: javascript hash object-literal

我正在创建一个哈希作为选项对象传递给jQuery插件。根据插件的定义,我需要使用的其中一个键是next

这在Safari中运行良好(所以我假设Webkit一般)但在Firefox中它被删除,或被忽略或者什么......它只是不存在。例如:

var opts = {
  "next": "some selector string",
  "prev": "some other selector string",
  "anotherOption": 1
};

console.log(opts);

输出继电器:

anotherOption      1
prev               "some other selector string"

这让我发疯了。更重要的是,有大量的插件和东西在某种选项哈希中使用这个键名,我以前从未注意过这种行为。任何人都可以告诉我这里发生了什么以及如何解决它? (我尝试过做opts.next = "something"但产生的结果相同)。

这也不是周围代码的问题 - 我已经将示例(减去console.log调用)键入我的Firebug控制台并得到了相同的结果。

2 个答案:

答案 0 :(得分:4)

这是bug in Firefox

该错误会阻止Firebug打印它,但实际的Object仍应正确定义next属性。

答案 1 :(得分:3)

next 属性不会在Firebug控制台中打印出来,但确实已定义。这可能是Firebug的问题,而不是JS。您的代码仍然有用。

>>> var v = {};
undefined
>>> v.next = 'foo';
"foo"
>>> v.prev = 'bar';
"bar"
>>> v
Object { prev="bar"}
>>> v.next
"foo"