现在感到困惑,好像很困惑:
得到了这个javascript对象:
{
x: 0,
y: 0,
w: 28,
h: 25,
itemid: "5FE6E709096C4B57999AABC3575AF5D8",
moveable: true,
type: "4",
fontface: "",
text: "ef00704dd40e4768a1b15c14af9b6c4b.png",
fontsize: 0,
color: "",
opacity: "",
align: 0
}
如果我做console.log(theaboveobject); 输出很好。
但是,如果我执行console.log(object.w)或console.log(object.h),我会得到0作为响应 这连续2晚已经完成了我的目标,最新进展,我缺少什么?
console.log(artworkLine); // this outputs fine as above
console.log(artworkLine.w); // says 0
console.log(artworkLine.h); // says 0
答案 0 :(得分:2)
这只是猜测,但我个人经历了几次类似的事情。
这是由浏览器如何解析对控制台中对象的引用引起的。它是在运行时通过点击它展开它的时刻完成的。而且很可能在那一刻,对象已经充满了所需的数据。
有关该问题的更多详细信息:http://felix-kling.de/blog/2011/08/18/inspecting-variables-in-javascript-consoles/
如果您尝试使用js调试器(即内置的chrome开发人员工具)并使用console.log(object);
放置一行 - 您将看到实际的对象值。
这个问题很容易证明:
unfold
标签出现Object
(假设您使用谷歌浏览器浏览器)foo
属性的对象现在重复相同的步骤,但在第4步展开 unfold
标签前的对象。你会发现步骤6的结果是不同的。