javascriptのコンストラクタを調べた
基礎を学ぶために、returnを持つコンストラクタの挙動を調べた。
下記コードだと、new Hoge()で、nameプロパティを持つオブジェクトが返され、temp1変数に格納される。
var Hoge = function (){ this.name = 'hoge'; }; var temp1 = new Hoge(); alert(temp1.name);
下記だと、new Hoge()で、Dateオブジェクトが返され、temp1変数に格納される。this.nameの対象となるオブジェクトも作成されているのだろうか。
var Hoge = function (){ this.name = 'hoge'; return new Date(); }; var temp1 = new Hoge(); alert(temp1.name);
つまり、var x = new Xxx()とした場合、そのXxx()関数でreturnされるオブジェクトが変数xに代入される、ということだね。それだったら、var x = Hoge();と一緒だな。