"这个词的含义是什么?"
P粉696605833
2023-08-20 16:52:15
<p>我正在尝试从一个函数中弹出一个返回值,而在弹出框中我得到的是:</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中谈论“对象”时,实际上是指“对象对象”,而不是其他类型。
其中
stringify
应该是这样的:将对象转换为字符串的默认结果是
"[object Object]"
。由于您正在处理jQuery对象,您可能希望执行以下操作
以打印元素的ID。
如评论中所提到的,您应该使用Firefox或Chrome等浏览器中包含的工具来检查对象,而不是使用
alert
,方法是执行console.log(whichIsVisible())
。附注:ID不应以数字开头。