これは言い回しの悪い質問かもしれませんが、このスニペットを考慮してください:
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が作成されます。それを実装してオブジェクトを呼び出せるように、探しているプロパティを知る必要があります。