考虑一个名为obj
的对象,我认为它等于{x: 1, y: 'hi'}
(它在前一段定义,并且在其整个生命周期中通过各种功能进行了一些修改)。Javascript对象不一致
console.log(obj);
console.log(obj.y);
console.log(obj.x);
的这两种铬和FF3.6结果表明的console.log(obj)
作为
obj = {x: 1, y: 'hi'}
如预期的结果。如预期的obj.y
的结果打印hi
,但obj.x
的结果打印0
。
我不明白这种不一致如何发生。它作为整体对象正确打印,但直接访问该参数后在下一行打印出不同的值。
我认为这与共享对象结构有关,因为我定义了obj
并将其存储在数组arr
中。然后我使用jQuery的.data()
函数将obj
放在DOM元素上。我稍后使用DOM元素中的.data()
检索对象,并再次修改对象(具体参数为x
)。当我稍后访问arr
的对象时,我正在看到的古怪事情正在发生。
主要是,我只是想知道为什么的console.log显示不一致
没有一些现场演示是不可能分辨的。如果我创建一个这样的对象,'obj.x'会打印'1'。即我无法重现错误...请提供问题的演示。 – 2011-04-19 18:39:39
我不认为我有足够的信息知道哪里出了问题。从您描述的内容中,当您使用.data()访问它或从数组中检索它时,应该引用同一对象。你对obj.x的操作究竟是什么? – 2011-04-19 18:46:07
@Jesse就像obj.x = 2或其他东西 – 2011-04-19 18:48:52