2015-10-14 64 views
2

我有這個對象結構並想遍歷obj的所有直接子對象並調用它們的myMethod方法。 雖然for...in遍歷他們正確的,我總是得到這個錯誤o.myMethod is not a function在類似數組的對象中迭代和調用方法

這裏是一個JSFiddle

obj = { 
    test1: { 
     "name": "test1string", 
     "myMethod": function(){ 
      console.log("test 1 method called") 
     } 
    }, 
    test2: { 
     "name": "test2string", 
     "myMethod": function(){ 
      console.log("test 2 method called") 
     } 
    } 
}; 

for (var o in obj) { 
    console.log(o.name()); 
    o.myMethod(); 
} 

我怎樣才能達到想要的行爲?

回答

2

obj[o].myMethod()for .. in給出了成員的名字,而不是數值。

1

像這樣使用它obj[o].name。這是更新的fiddle