迭代对象属性失败?

时间:2011-09-08 06:07:53

标签: javascript

我遇到了一个最奇怪的问题,试图使用(object.property中的var i)立即失败,但Firebug向我显示了该对象并且看起来形状正确。我能够一直迭代对象,我不知道这个对象有什么不同。

这是Firebug显示的对象。 cTags是一个带有属性“tags”的对象,它本身包含属性,每个属性都是一个数组:

Firebug跟踪输出:

cTags.tags     Object { question=[2], template=[2]}  

“tags”属性的键应该是“question”和“template”,firebug会显示它们,如果我展开cTags.tags的firebug轨迹:

question     ["q1", "q2"]
template     ["Activity1", "Course Templates"]

然而当Firebug遇到我的for,它立即死亡,没有错误,只是在这句话之后跳过:

for( var i in cTags.tags ){     
    if( cTags.tags.hasOwnProperty(i)){
第一个语句后

i未定义。然而,我甚至可以在Firebug中跟踪hasOwnProperty函数:

 cTags.tags.hasOwnProperty("template")       true

我觉得我错过了一些非常愚蠢的东西,但它是什么?怎么会失败,但Firebug告诉我,它应该是好的去?什么会导致i未定义?

[编辑]

它实际上在hasOwnProperty调用上死亡。那么,当Firebug表明它确实具有这些属性时,怎么可能呢?

0 个答案:

没有答案