__proto__
プロパティを使用せずにインスタンスのプロトタイプを変更する方法はありますか?
私はこれを思いついた:
x=new String();
y=new Array();
Object.setPrototypeOf(x,y.__proto__)
しかし、これはまだ使用しています__proto__
。
__proto__
プロパティを使用せずにインスタンスのプロトタイプを変更する方法はありますか?
私はこれを思いついた:
x=new String();
y=new Array();
Object.setPrototypeOf(x,y.__proto__)
しかし、これはまだ使用しています__proto__
。
たぶん次のように:
function object(o) {
function F() {}
F.prototype = o;
return new F();
}
x = object(y);
Stoyan Stefanov によるJavaScript パターンから取得
__proto__
オブジェクトを取得すると、プロパティを使用せずに [[Prototype]] リンクを変更することはできません。
あなたの例は、実用性の観点からは意味がありません。String
またはのメソッドを他方で使用する場合はArray
、それらを呼び出して ThisBinding を設定するか、必要に応じて割り当てます。
ただし、[[Prototype]] リンクが別のオブジェクトを指す新しいオブジェクトを作成することはできます。
var obj = Object.create(String.prototype);
もちろん、これは元のオブジェクトを変更しません。