0

誰かが言ったように、インスタンスの内部プロトタイプはコンストラクターのプロトタイプへのリンクです。

 function foo(){}
 x=new foo()
 foo.prototype={};
 x instanceof foo//false (if instance internal prototype is a link to constructor prototype than it should have been replaced with replacing prototype) but
 x.constructor==foo//true why according to the above definition if internal prototype is a link to constructor prototype it should have been updated
4

2 に答える 2

0

newキーワードを使用してオブジェクトを作成すると、プロトタイプはコピーされず、リンクされます。__proto__chrome、firefox、safari(ただし、これは非標準です)では、プロパティからリンクにアクセスできるため、次のようになります。

var x = new T();
console.log(x.__proto__ === T); // => true

内部で行われていることは、プロパティがアクセスされ、オブジェクト内で見つからない場合、javascriptエンジンは、それ自体がプロトタイプオブジェクトを持つ可能性のあるプロトタイプオブジェクトでそれを検索することです。

于 2013-01-30T05:11:17.533 に答える
0

JavaScript では、実際のクラスはありません。オブジェクトを作成し、後でそのメソッドとプロパティを追加します。したがって、foo のすべてのインスタンスには、foo に適用されるメソッド/プロパティがあり、それらがいつ追加されたかは関係ありません。

于 2013-01-30T05:07:02.690 に答える