上面可以遍历myObject 的属性 如果是var myObject=new Array();for (prop in myObject)
{console.log("属性 '" + prop + "' 为 " + myObject[prop]);}
无法遍历数组的方法,有些语言如python就可以通过反射将任何对象的属性或方法都遍历出来,
js 不能对本地对象遍历它的方法,真是一个不足哈。Number对象有这些常见方法:toString,toLocalString,value,toSource,toExponetial,toFixed,toPrecision等等通常我们不能全部记住吧,如果有一种简单的反射方法,全部列出来,可以减少记忆上的负担。请看python的反射>>> x=[1,2,3]>>> dir(x)['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']这个x这个数组对象,包含一些方法,属性都遍历出来了,多简洁,减低程序员记忆上的负担。
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
这不是不足,而是你的理解没有到位。
for in
遍历,只会遍历能够枚举的属性,而Array.prototye
里面的方法都是不可枚举的,自然就无法遍历。另外什么情况下我们需要遍历数组?难道不是因为我们想取数组里面的元素吗?如果这个时候把数组的方法遍历出来了,反而奇怪了。所以这个设计完全是合理的。
要列举也行,如下:Object.getOwnPropertyNames(Array.prototype)
个人认为完全没有必要,查询API是更好的方式。
添加回答
举报
0/150
提交
取消