prototype.jsソースコード分析

__proto__あたり

<script>
var Parent = function(){};

var myobj = new Parent();

w(myobj.__proto__ === Parent.prototype);
//__proto__プロパティはオブジェクトの作成に使用されたクラスのprototypeを参照する。
w(myobj.__proto__.constructor === Parent);
w(Parent.prototype.constructor === Parent);
//constructorプロパティはコンストラクタ関数自身を参照する。

var Child = function(){};
Child.prototype = new Parent();
var myobj2 = new Child();

w(Child.prototype.constructor === Parent);
w(myobj2.__proto__.constructor === Parent);//Child.prototypeのコンストラクタは。。
w(myobj2.__proto__ === Child.prototype);//myobj2のプロトタイプは。。
w(myobj2.constructor === Child);//false
w(myobj2.constructor === Parent);//true

w(Child.constructor === Function);
w(Parent.constructor === Function);
var test = function(){};
w(test.constructor === Function);
w({}.constructor === Object);

function w(data){
	document.write(data + "<hr>");
}
</script>