" What does mean?" 的意思是什么?
P粉358281574
P粉358281574 2023-08-17 10:48:39
[JavaScript讨论组]

我正在尝试从一个函数中alert返回的值,并且在弹出框中得到了以下内容:

[object Object]  

以下是JavaScript代码:

<script type="text/javascript">
$(function ()
{
    var $main = $('#main'),
    $1 = $('#1'),
    $2 = $('#2');

    $2.hide(); // 页面加载时隐藏div#2

    $main.click(function ()
    {
        $1.toggle();
        $2.toggle();
    });

    $('#senddvd').click(function ()
    {
       alert('hello');
       var a=whichIsVisible();
       alert(whichIsVisible());
    });

    function whichIsVisible()
    {
        if (!$1.is(':hidden')) return $1;
        if (!$2.is(':hidden')) return $2;
    }

});

</script>

whichIsVisible是我正在尝试检查的函数。

P粉358281574
P粉358281574

全部回复(2)
P粉458913655

正如其他人指出的那样,这是一个对象的默认序列化。但为什么它是[object Object]而不只是[object]呢?

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

  • 函数对象
    stringify(function (){}) -> [object Function]
  • 数组对象
    stringify([]) -> [object Array]
  • 正则表达式对象
    stringify(/x/) -> [object RegExp]
  • 日期对象
    stringify(new Date) -> [object Date]
  • 还有更多
  • 还有对象对象
    stringify({}) -> [object Object]

这是因为构造函数被称为Object(大写的“O”),而术语“object”(小写的“o”)指的是该物体的结构性质。

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

其中stringify应该是这样的:

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

P粉465287592

将对象转换为字符串的默认结果是"[object Object]"

由于您正在处理jQuery对象,您可能想执行以下操作

alert(whichIsVisible()[0].id);

以打印元素的ID。

如评论中所提到的,您应该使用Firefox或Chrome等浏览器中包含的工具来检查对象,而不是使用alert,可以执行console.log(whichIsVisible())

附注:ID不应以数字开头。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号