javascript:索引期间在对象上调用哪些函数?

时间:2011-01-02 16:41:52

标签: javascript indexing for-loop mshtml

这可能是一个措辞不佳的问题,但考虑到这个片段:

var foo = { bar : 1 };
var bar = foo['bar'];

索引到foo时实际调用了哪些函数?同样,如果你有以下代码怎么办:

var foo = { bar : 1 };
for(var x in foo)
   dosomething();

在for语句中实际上会调用foo上的哪些函数?假设我想改变给定对象的这两种场景的行为,我该怎么做?

更具体地说,我实际上在做的是将.net对象传递给MSHTML文档(上面的foo实际上是对象),该对象实现了IReflect并且在索引调用期间(如上面的场景1)调用到GetProperties和GetFields。我需要知道它正在寻找哪个属性,所以我可以实现它并让它调用我的对象。

2 个答案:

答案 0 :(得分:1)

听起来好像你正在寻找像PHP一样的魔术吸气剂和定位器。 John Resig wrote an article关于此事。但它并不适用于所有平台。

答案 1 :(得分:0)

答案是第一部分是创建自己的PropertyInfo对象,这些对象以集合中项目的索引命名并返回它们。我仍然没有想出如何与for..in兼容。