【问题标题】:What does [object Object] mean? (JavaScript)[对象对象] 是什么意思? (JavaScript)
【发布时间】:2012-01-17 09:46:36
【问题描述】:

我的一个警报给出以下结果:

[object Object] 

这到底是什么意思? (这是一些 jQuery 对象的警报。)

【问题讨论】:

标签: javascript jquery


【解决方案1】:

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

【解决方案2】:

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

https://jsfiddle.net/b1u6hfns/

【讨论】:

    【解决方案3】:

    alert() 函数不能以可读的方式输出对象。尝试改用 console.log(object),然后启动浏览器的控制台进行调试。

    【讨论】:

    • 这条评论完美地回答了我想弄清楚的问题。
    【解决方案4】:

    那是因为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))
    

    【讨论】:

      【解决方案5】:

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

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

      使视觉解析更容易一些。

      【讨论】:

        【解决方案6】:

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

        例如:

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

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

          • 不,JSON.parse 没有帮助。
          猜你喜欢
          • 1970-01-01
          • 2011-06-12
          相关资源
          最近更新 更多