这可能是一个措辞不佳的问题,但考虑到这个片段:
var foo = { bar : 1 };
var bar = foo['bar'];
索引 foo 时实际调用了哪些函数?同样,如果您有以下代码怎么办:
var foo = { bar : 1 };
for(var x in foo)
dosomething();
foo 上的哪些函数实际上会在 for 语句中被调用?假设我想为给定对象更改这两种场景的行为,我该怎么做?
更具体地说,我实际上正在做的是将 .net 对象传递给 MSHTML 文档(上面的 foo 将是现实中的对象),该对象实现 IReflect 并在索引调用期间(如上面的场景 1)调用 GetProperties 和生成了 GetFields。我需要知道它正在寻找哪个属性,以便我可以实现它并让它调用我的对象。