__proto__ VS. JavaScriptでプロトタイプ

__proto__ VS. JavaScriptでプロトタイプ

http://dmitrysoshnikov.com/ecmascript/javascript-the-core/#a-prototype-chain

// コンストラクタ関数
関数はFoo(Y){
   // オブジェクトを作成することができる
  // 指定されたパターンで:後、それらを有する
  // 作成自身の「Y」プロパティ
  この .Y = Y。
}

 

__proto__など、方法を解決するために参照チェーンで使用されている実際のオブジェクトでprototype構築するために使用されるオブジェクトである__proto__あなたがオブジェクトを作成する場合new

新しいフー).__ proto__ === Foo.prototype。新しいフー).prototypeは===未定義します。

 

どのように__proto__はconstructor.prototypeに違うのですか?

 私は最近、このまわりで私の頭をラップしようとし、最後に、この私が問題の上に小屋の完全な光を考えている「マップ」を思い付いてきました

私は、これを構成する最初のものはないよ知っているが、それは:-)それを見つけること、それを考え出すより面白かったです。とにかく、その後私は、この私がbasicly同じと言うと思います別の図例が見つかりました:

JavaScriptオブジェクトのレイアウト

私にとって最も驚くべき事があることを発見されたObject.__proto__ポイントはにFunction.prototype、代わりのをObject.prototype、私はそれ:-)のための十分な理由があると確信しています

私は、誰もがそれをテストしたい場合のためにも、ここでの画像に記載されたコードを貼り付けます。いくつかのプロパティは、我々はいくつかのジャンプの後にある場所を知ることは容易で作るためのオブジェクトに追加されていることに注意してください:

Object.O1='';
Object.prototype.Op1='';

Function.F1 = '';
Function.prototype.Fp1 = '';

Cat = function(){};
Cat.C1 = '';
Cat.prototype.Cp1 = '';

mycat = new Cat();
o = {};

// EDITED: using console.dir now instead of console.log
console.dir(mycat);
console.dir(o);

 

The reason why Object.__proto__ points to Function.prototype is because Object() by itself is a native function that instantiates an empty object. Therefore, Object() is a function. You'll find that all the other major native types' __proto__ properties point to Function.prototype. Object, Function, String, Number, and Array all inherit the Function prototype.

 

 

おすすめ

転載: www.cnblogs.com/chucklu/p/11129796.html