[object Object]是什么意思? (JavaScript的)

时间:2012-01-17 09:46:37

标签: javascript jquery

我的一个警告是提供以下结果:

[object Object] 

这究竟是什么意思? (这是一些jQuery对象的警告。)

7 个答案:

答案 0 :(得分:35)

这意味着您正在警告对象的实例。当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单独检查它们。

答案 1 :(得分:4)

alert()函数无法以读取友好的方式输出对象。请尝试使用console.log(object),然后启动浏览器的控制台进行调试。

答案 2 :(得分:3)

我在其他问题中写了这个答案,这个答案是重复的,很快我就想把答案搞定了,所以这里任何方式都是我的答案。我的两分钱,并希望其他方面有所帮助。

由于@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(""));

https://jsfiddle.net/b1u6hfns/

答案 3 :(得分:1)

如果你在DOM中弹出它,那么尝试将其包装在

<pre>
    <code>{JSON.stringify(REPLACE_WITH_OBJECT, null, 4)}</code>
</pre>

使视觉解析更容易一些。

答案 4 :(得分:1)

那是因为Javascript中有不同类型的对象!

例如

  • 函数对象:

stringify(function (){}) -> [object Function]

  • 数组对象:

stringify([]) -> [object Array]

  • RegExp 对象

stringify(/x/) -> [object RegExp]

  • 日期对象

stringify(new Date) -> [object Date]

...
  • 对象对象!

stringify({}) -> [object Object]

构造函数称为Object(大写“O”),术语“对象”(小写“o”)指的是事物的结构性质。

当您在 Javascript 中谈论“对象”时,您实际上指的是“对象对象”,而不是其他类型。

如果您想查看“[Object objects]”中的值,请使用:

console.log(JSON.stringify(result))

答案 5 :(得分:0)

警报不是显示对象的最佳选择。试试console.log?如果你仍然在控制台中看到Object Object,请使用像这样的JSON.parse&gt; var obj = JSON.parse(yourObject); console.log(obj)

答案 6 :(得分:0)

另一种选择是使用JSON.stringify(obj)

例如:

exampleObj = {'a':1,'b':2,'c':3};
alert(JSON.stringify(exampleObj))

https://www.w3schools.com/js/js_json_stringify.asp