[object 对象] 是什么意思?(JavaScript)

IT技术 javascript jquery
2021-01-27 14:52:20

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

[object Object] 

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

6个回答

这意味着您正在提醒一个对象的实例。alerting 对象时,在对象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(""))

https://jsfiddle.net/b1u6hfns/

alert() 函数无法以可读的方式输出对象。尝试使用 console.log(object) 代替,并启动浏览器的控制台进行调试。

这条评论完美地回答了我想弄清楚的问题。
2021-03-17 14:52:20

如果你在 DOM 中弹出它,然后尝试将它包装在

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

使视觉解析更容易一些。

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