" 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不應以數字開頭。