1

__proto__プロパティを使用せずにインスタンスのプロトタイプを変更する方法はありますか?

私はこれを思いついた:

x=new String();
y=new Array();
Object.setPrototypeOf(x,y.__proto__)

しかし、これはまだ使用しています__proto__

4

2 に答える 2

0

たぶん次のように:

function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
}

x = object(y);

Stoyan Stefanov によるJavaScript パターンから取得

于 2013-04-04T11:51:21.610 に答える
0

__proto__オブジェクトを取得すると、プロパティを使用せずに [[Prototype]] リンクを変更することはできません。

あなたの例は、実用性の観点からは意味がありません。Stringまたはのメソッドを他方で使用する場合はArray、それらを呼び出して ThisBinding を設定するか、必要に応じて割り当てます。

ただし、[[Prototype]] リンクが別のオブジェクトを指す新しいオブジェクトを作成することはできます。

var obj = Object.create(String.prototype);

もちろん、これは元のオブジェクトを変更しません。

于 2013-04-04T11:50:25.160 に答える