" What does mean?" 的意思是什么?
P粉358281574
2023-08-17 10:48:39
<p>我正在尝试从一个函数中<code>alert</code>返回的值,并且在弹出框中得到了以下内容:</p>
<pre class="brush:none;toolbar:false;">[object Object]
</pre>
<p>以下是JavaScript代码:</p>
<pre class="brush:html;toolbar:false;"><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>
</pre>
<p><code>whichIsVisible</code>是我正在尝试检查的函数。</p>
正如其他人指出的那样,这是一个对象的默认序列化。但为什么它是
[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
应该是这样的:将对象转换为字符串的默认结果是
"[object Object]"
。由于您正在处理jQuery对象,您可能想执行以下操作
以打印元素的ID。
如评论中所提到的,您应该使用Firefox或Chrome等浏览器中包含的工具来检查对象,而不是使用
alert
,可以执行console.log(whichIsVisible())
。附注:ID不应以数字开头。