这是我在百度的提问,就一个人回答 郁闷 来这里请教下~
var a=new Array();
for(var i in a)
document.write(i+"分割号")
我想用 for/in枚举出javascript的内部对象,却没有显示,也不报错,遍历自己创建的对象,其属性、方法都能正常显示!难道这就是《JAVASCRIPT权威指南》说的不能枚举出某些预定义的属性或方法? 
问题补充:TO:fenghuif 
我第一次创建的是 var a= new Date();同样没有显示,而且数组可以说是有序的对象,我并没有对Array()进行赋值,那么for/in后应该得出数组自身的属性方法啊! 况且将var a=new Array();赋值后遍历能得到其数组元素··
回答    共 1 条
检举    你创建的是个数组
参考下in方法的用法。
alert(n.length) 

解决方案 »

  1.   

    for(var i in a)
    document.write(a[i]+"分割号")????
      

  2.   

    你是要打出a中的属性?
    那就用一楼的a[i]这才是对象a的属性啊
      

  3.   

    你已经回答完毕了。
    不能枚举出某些预定义的属性或方法
    只能枚举出来自定义的属性或者方法。难道其他语言能够枚举 Object 预定义的一些方法?
      

  4.   

    好奇怪啊 百度有人叫我直接试试for(var i in window)结果能显示出一串属性方法。window不也是预定义的么?  怎么回事  求解!!!
      

  5.   

    window是BOM对象(Browser Object Model),还有DOM(Document Object Model)对象:document  document.createElement('div')等等这些都可以看做是后来定义的,用来给用户使用的,也可以说,DOM还有BOM对象是浏览器定义的,而非Javascript内置对象。
    预定义属性无法弹出是针对javascript内置对象而言的。比如 Object、Function、String、Array、Number、Math、Date等等,这些对象的预定义属性是不允许枚举的。
    暂时我们编程多数是在浏览器内编程,所以很容易将DOM、BOM跟javascript内置对象混淆,其实差别在于,javascript内置对象,不管你在哪里使用javascript,都有这些对象,而非内置对象则取决于宿主环境。
    比如,在ASP中,可以使用javascript编程,就没有window对象,却有Response对象。在windows系统中使用javascript编程,还可以实例化FSO组件,但是在浏览器(除IE外)中却没有这一支持。
      

  6.   

    你那是数组,数组这种对象和window,document这种对象不同。
    我以前写过一个JS小工具,列举对象属性,现在发出来,你可以看看
    http://blog.csdn.net/theforever/archive/2010/11/23/6029382.aspx