Microsoft のこの動きの意図は明らかです。DOM2 のすべてのインターフェイスを非常に低コストで「実装」することです。以下に 2 つの例を示します。
Element.prototype。 addEventListener = function(evtType, evtHandler) {
return this.attachEvent('on' evtType, evtHandler);
}
Object.defineProperty(Event.prototype, 'target', { get : function() { return this.srcElement },
set: function(v) { return this.srcElement = v }
});
これは初期の __definegetter_ の使用と同じ _ などは、同じ方法で Firefox を IE と互換性を持たせましたが、今回は完全に標準 (DOM プロトタイプと ECMA v5) の方法を使用して IE の欠点を補いました。おそらく、IE8 の開発中にレンダリング エンジンが書き直されたのでしょうが、新しい DOM インターフェイス (おそらくサードパーティ アプリケーションと互換性がある) をリリースする時間がなかった (私は非常に楽観的です...) ため、この解決策が与えられました。