【发布时间】:2012-01-17 09:46:36
【问题描述】:
我的一个警报给出以下结果:
[object Object]
这到底是什么意思? (这是一些 jQuery 对象的警报。)
【问题讨论】:
标签: javascript jquery
我的一个警报给出以下结果:
[object Object]
这到底是什么意思? (这是一些 jQuery 对象的警报。)
【问题讨论】:
标签: javascript jquery
这意味着您正在警告一个对象的实例。当alert对象时,在对象上调用toString(),默认实现返回[object Object]。
var objA = {};
var objB = new Object;
var objC = {};
objC.toString = function () { return "objC" };
alert(objA); // [object Object]
alert(objB); // [object Object]
alert(objC); // objC
如果你想检查对象,你应该console.log它,JSON.stringify()它,或者枚举它的属性并使用for in单独检查它们。
@Matt 回答了[object object] 的原因,我将详细介绍如何检查对象的值。我想到了三个选项:
JSON.stringify(JSONobject) console.log(JSONobject) 基本示例。
var jsonObj={
property1 : "one",
property2 : "two",
property3 : "three",
property4 : "fourth",
};
var strBuilder = [];
for(key in jsonObj) {
if (jsonObj.hasOwnProperty(key)) {
strBuilder.push("Key is " + key + ", value is " + jsonObj[key] + "\n");
}
}
alert(strBuilder.join(""));
// or console.log(strBuilder.join(""))
【讨论】:
alert() 函数不能以可读的方式输出对象。尝试改用 console.log(object),然后启动浏览器的控制台进行调试。
【讨论】:
那是因为Javascript中有不同类型的对象!
例如
stringify(function (){}) -> [object Function]
stringify([]) -> [object Array]
stringify(/x/) -> [object RegExp]
stringify(new Date) -> [object Date]
...
stringify({}) -> [object Object]
构造函数称为Object(大写“O”),术语“对象”(小写“o”)指的是事物的结构性质。
当您在 Javascript 中谈论“对象”时,您实际上是指“对象对象”,而不是其他类型。
如果您想查看“[Object objects]”中的值,请使用:
console.log(JSON.stringify(result))
【讨论】:
如果你在 DOM 中弹出它,那么尝试将它包装在
中<pre>
<code>{JSON.stringify(REPLACE_WITH_OBJECT, null, 4)}</code>
</pre>
使视觉解析更容易一些。
【讨论】:
另一种选择是使用JSON.stringify(obj)
例如:
exampleObj = {'a':1,'b':2,'c':3};
alert(JSON.stringify(exampleObj))
【讨论】:
警报并不是显示对象的最佳选择。试试console.log?如果你仍然在控制台中看到 Object Object,请像这样使用 JSON.parse > var obj = JSON.parse(yourObject); console.log(obj)
【讨论】:
JSON.parse 没有帮助。