2010-06-05 80 views
3

如何列出/循環對象的所有屬性?只知道對象名稱。js對象和屬性

for(var prop in myobject){ 
alert(prop.name); 
alert(prop.value); 
} 
+0

使用丙作爲鑰匙插入MyObject的屬性即爲MyObject [丙] – 2010-06-05 12:08:39

回答

4
for(var prop in myobject) { 
    alert(prop); 
    alert(myobject[prop]); 
} 
+0

記住使用'.hasOwnProperty' – 2010-06-05 12:12:40

+0

我只是捆紮看谷歌地圖標記性能。 (api2) 作品謝謝,除了有很多屬性! document.write下次可能會更好,而不是alert。哎呀 – Harry 2010-06-05 12:27:26

2

你幾乎沒有!

for(var prop in myobject){ 
    alert(prop);   // -> property name 
    alert(myobject[prop]); // -> property value 
} 

請注意,這樣只會迭代不具備{DontEnum}屬性的屬性。幾乎所有內置的屬性和方法都不會被迭代,只會看到直接或通過原型添加的自定義屬性和方法。

1
myobj.prototype.details= function(delim, sortfun){ 
    delim=delim || ', '; 
    var list= []; 
    for(var p in this){ 
     if(this.hasOwnProperty(p){ 
      list[list.length]=p+':'+this[p].toString(); 
     } 
    } 
    if(typeof sortfun==function) list.sort(sortfun); 
    return list.join(delim); 
} 

˚F