Javascript 中所有對象都繼承自 Ojbect。Object 有很多屬性。那么我們是否能夠用下面方式打印出來呢?
<html> <head> <script type="text/javascript"> var object = new Object(); for (var a in object) { alert(v); } </script> </head> <body> </body> </html>
打印結果是空。
那么是不是說 Ojbect沒有屬性呢?
不是的。 Object 有很多屬性。只不過 Object 的屬性是不能枚舉出來的,所以無法用 for in 打印出來。
我們可以用 下面判斷一下。
<html> <head> <script type="text/javascript"> var object = new Object(); for (var a in object) { alert(v); } alert(object.propertyIsEnumerable("prototype"));//打印object 的原型是否可以枚舉.結果為 false //說明不可枚舉。 </script> </head> <body> </body> </html>
結果為 false。說明確實不可枚舉。
那么如果你一定想看看這些屬性怎么辦呢?
我們想到 js 中一個內置對象 window。他有些屬性我們都用過。我們看看是否能夠打印出來
<html> <head> <script type="text/javascript"> var list = new Array(); //定義 array for (var a in window)//循環 window 對象中屬性 { list.push(a); //把屬性push到數組中 } alert(list);//打印數組 </script> </head> <body> </body> </html>
結果列出了所有的屬性:
window, document, InstallTrigger, list, a, addEventListener, removeEventListener, dispatchEvent, dump, name, parent, top, self, sessionStorage, localStorage, onmouseenter, onmouseleave, getSelection, scrollByLines, getComputedStyle, location, history, locationbar, menubar, personalbar, scrollbars, statusbar, toolbar, status, close, stop, focus, blur, length, opener, frameElement, navigator, applicationCache, alert, confirm, prompt, print, showModalDialog, postMessage, atob, btoa, matchMedia, screen, innerWidth, innerHeight, scrollX, pageXOffset, scrollY, pageYOffset, scroll, scrollTo, scrollBy, screenX, screenY, outerWidth, outerHeight, scrollByPages, sizeToContent, content, closed, crypto, pkcs11, controllers, defaultStatus, mozInnerScreenX, mozInnerScreenY, scrollMaxX, scrollMaxY, fullScreen, back, forward, home, moveTo, moveBy, resizeTo, resizeBy, updateCommands, find, mozPaintCount, mozRequestAnimationFrame, mozCancelAnimationFrame, mozCancelRequestAnimationFrame, mozAnimationStartTime, URL, onafterprint, onbeforeprint, onbeforeunload, onhashchange, onmessage, onoffline, ononline, onpopstate, onpagehide, onpageshow, onresize, onunload, ondevicemotion, ondeviceorientation, setTimeout, setInterval, clearTimeout, clearInterval, setResizable, captureEvents, releaseEvents, routeEvent, enableExternalCapture, disableExternalCapture, open, openDialog, frames, onabort, onblur, oncanplay, oncanplaythrough, onchange, onclick, oncontextmenu, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, ondurationchange, onemptied, onended, onerror, onfocus, oninput, oninvalid, onkeydown, onkeypress, onkeyup, onload, onloadeddata, onloadedmetadata, onloadstart, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onmozfullscreenchange, onmozfullscreenerror, onmozpointerlockchange, onmozpointerlockerror, onpause, onplay, onplaying, onprogress, onratechange, onreset, onscroll, onseeked, onseeking, onselect, onshow, onstalled, onsubmit, onsuspend, ontimeupdate, onvolumechange, onwaiting, oncopy, oncut, onpaste, onbeforescriptexecute, onafterscriptexecute, mozIndexedDB, performance