IEでは、を使用することはできませんがobj.__proto__ = some_proto、関数を介した継承を使用することで、この不足を回避できます。例:
func = function(){}
func.prototype = proto
obj = new func
このラウンドアバウトの問題は、への古い参照objが失われ、プロトタイプとしての新しい参照objを指さないことです。protoIEの既存のオブジェクトのプロトタイプを変更する方法はありますか?
IEでは、を使用することはできませんがobj.__proto__ = some_proto、関数を介した継承を使用することで、この不足を回避できます。例:
func = function(){}
func.prototype = proto
obj = new func
このラウンドアバウトの問題は、への古い参照objが失われ、プロトタイプとしての新しい参照objを指さないことです。protoIEの既存のオブジェクトのプロトタイプを変更する方法はありますか?
いいえ、ありません。
__proto__は単なるハックであり、とにかく使用しないでください (標準機能ではありません)。現在、JS で既存のオブジェクトのプロトタイプを変更することはできません。
関連する質問/回答:リテラル初期化で作成されたオブジェクトのプロトタイプの変更、https://stackoverflow.com/a/7223353/218196