一尘不染

[object Object]是什么意思?

javascript

我试图提醒函数返回的值,并且在提醒中获取了此值

[对象对象]

这是JavaScript代码

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

$2.hide(); // hide div#2 when the page is loaded

$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是我要检查的功能


阅读 3416

收藏
2020-04-25

共2个答案

一尘不染

从对象到字符串的默认转换是"[object Object]"

在处理jQuery对象时,您可能想做

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

打印元素的ID。

如评论中所述,您应该使用Firefox或Chrome之类的浏览器中包含的工具console.log(whichIsVisible())代替来自省对象alert

旁注 :ID不能以数字开头。

2020-04-25
一尘不染

正如其他人指出的那样,这是对象的默认序列化。但为什么它[object Object]并不仅仅是[object]

那是因为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中的“对象”时,实际上是指 “ 对象对象 ”,而不是其他类型。

这里stringify应该是这样的:

function stringify (x) {
    console.log(Object.prototype.toString.call(x));
}
2020-04-27