我试图提醒一个函数的返回值,我在提醒中得到了这个:
[object Object]
这是 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
是我要检查的函数。
最佳答案
正如其他人所指出的,这是对象的默认序列化。但为什么是 [object Object]
而不仅仅是 [object]
?
那是因为 Javascript 中有不同类型的对象!
- 函数对象:
stringify(function (){})
->[对象函数]
- 数组对象:
stringify([])
->[对象数组]
- 正则表达式对象
stringify(/x/)
->[对象正则表达式]
- 日期对象
stringify(new Date)
->[对象日期]
- … several more ……
- 和对象对象!
stringify({})
->[对象对象]
那是因为构造函数被称为Object
(大写“O”),术语“object”(小写“o”)指的是事物的结构性质。
通常,当您在 Javascript 中谈论“对象”时,您实际上指的是“Object 对象”,而不是其他类型。
stringify
应该是这样的:
function stringify (x) {
console.log(Object.prototype.toString.call(x));
}
关于javascript - [object 对象] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750225/