我试图提醒函数返回的值,并且在提醒中获取了此值
[对象对象]
这是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 Object]"
在处理jQuery对象时,您可能想做
alert(whichIsVisible()[0].id);
打印元素的ID。
如评论中所述,您应该使用Firefox或Chrome之类的浏览器中包含的工具console.log(whichIsVisible())代替来自省对象alert。
console.log(whichIsVisible())
alert
旁注 :ID不能以数字开头。
正如其他人指出的那样,这是对象的默认序列化。但为什么它[object Object]并不仅仅是[object]?
[object Object]
[object]
那是因为Javascript中有不同类型的对象!
功能对象:
stringify(function (){})->[object Function]
stringify(function (){})
[object Function]
数组对象:
stringify([])->[object Array]
stringify([])
[object Array]
RegExp对象
stringify(/x/) ->[object RegExp]
stringify(/x/)
[object RegExp]
日期对象
stringify(new Date) ->[object Date]
stringify(new Date)
[object Date]
… 更多 …
和对象对象!
stringify({})->[object Object]
stringify({})
那是因为构造函数被调用了Object(大写的“ O”),术语“对象”(带有小的“ o”)指的是事物的结构性质。
Object
通常,当你谈论Javascript中的“对象”时,实际上是指 “ 对象对象 ”,而不是其他类型。
Javascript
这里stringify应该是这样的:
stringify
function stringify (x) { console.log(Object.prototype.toString.call(x)); }