首页 >web前端 >js教程 >为什么 JavaScript 在记录对象时显示'[object Object]”?

为什么 JavaScript 在记录对象时显示'[object Object]”?

DDD
DDD原创
2024-12-13 18:53:12475浏览

Why Does JavaScript Display

理解 JavaScript 中的“[object Object]”

在 JavaScript 中,当尝试警告或记录以下值时,您可能会遇到字符串“[object Object]”一个物体。该字符串表示对象的默认序列化,提供对对象类型的深入了解。

为什么使用“[object Object]”而不是“[object]”?

与某些编程语言不同,JavaScript有各种对象类型。每种类型都由其构造函数标识。以下示例说明了不同对象类型的序列化:

function stringify(x) {
    console.log(Object.prototype.toString.call(x));
}

stringify(function () {}); // [object Function]
stringify([]); // [object Array]
stringify(/x/); // [object RegExp]
stringify(new Date); // [object Date]
stringify({}); // [object Object]

在 JavaScript 中,术语“对象”(小写)通常指事物的结构性质。然而,当具体讨论“对象”时,开发人员通常指的是“Object 对象”(大写)。这是因为这些对象的构造函数称为 Object。

从函数返回对象

在您提供的代码中,函数whichIsVisible() 返回一个表示可见元素的对象。当您尝试警告返回值时,JavaScript 会将对象序列化为“[object Object]”,因为它是一个 Object 对象。

要显示实际元素而不是序列化字符串,您可以修改该函数以返回元素的 ID:

function whichIsVisible() {
    if (!.is(':hidden')) return .attr('id');
    if (!.is(':hidden')) return .attr('id');
}

以上是为什么 JavaScript 在记录对象时显示'[object Object]”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn