这是我在百度的提问,就一个人回答 郁闷 来这里请教下~
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)
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)
document.write(a[i]+"分割号")????
那就用一楼的a[i]这才是对象a的属性啊
不能枚举出某些预定义的属性或方法
只能枚举出来自定义的属性或者方法。难道其他语言能够枚举 Object 预定义的一些方法?
预定义属性无法弹出是针对javascript内置对象而言的。比如 Object、Function、String、Array、Number、Math、Date等等,这些对象的预定义属性是不允许枚举的。
暂时我们编程多数是在浏览器内编程,所以很容易将DOM、BOM跟javascript内置对象混淆,其实差别在于,javascript内置对象,不管你在哪里使用javascript,都有这些对象,而非内置对象则取决于宿主环境。
比如,在ASP中,可以使用javascript编程,就没有window对象,却有Response对象。在windows系统中使用javascript编程,还可以实例化FSO组件,但是在浏览器(除IE外)中却没有这一支持。
我以前写过一个JS小工具,列举对象属性,现在发出来,你可以看看
http://blog.csdn.net/theforever/archive/2010/11/23/6029382.aspx