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