8784


・constructorプロパティは、コンストラクタ関数にも、コンストラクタ関数.prototypeにも、存在するのでしょうか？  
・それとも、プロトタイプチューンを辿って単にそう見えるだけ？

下記は何が違うのでしょうか？  
・「Hoge.constructor」「Hoge.prototype.constructor」に何らかのオブジェクトは存在する？  
・それぞれの役割は？  
・どういうタイミングで作成される？

* * *

function Hoge() {};

1  
console.log(Hoge);

2  
console.log(Hoge.prototype.constructor);

3  
console.log(Hoge.constructor.prototype);

4  
console.log(Hoge.prototype.constructor.prototype);

* * *

3  
・Hoge.constructor.prototypeに実体はあるでしょうか？  
・それとも、プロトタイプチューンを辿って取得した結果を表示しているだけ？

4  
・ここに継承したオブジェクトが保存される？

* * *

理解できないので質問追記します。  
・下記ページに以下の記載があるのですが、この仕様はどこで確認できるでしょうか？

> 継承されたオブジェクトはconstructor.prototypeに格納される  
>  <http://qiita.com/maccotsan/items/45b348d4eb52f473b0e3>


CC BY-SA 3.0
2015-04-05T06:08:50.697
8781
2015-04-23T01:19:16.223
2015-04-23T01:19:16.223
7886
7886
question
javascript
JavaScript ／ constructorプロパティは、コンストラクタ関数にも、コンストラクタ関数.prototypeにも存在する？


関数が定義されると、関数オブジェクトのprototypeプロパティに、constructorプロパティが自分自身のオブジェクトが設定されます。  
つまりHoge.prototype.constructor→Hogeです。それ以外は特別なことはなく、  
Hoge.constructorはプロトタイプチェーンをさかのぼって  
Hoge.__proto__.constructor→Function.prototype.constructor→Functionです。


CC BY-SA 3.0
2015-04-05T06:48:36.580
8784
2015-04-05T06:48:36.580
5721
8781
answer