私の歴史と今

振り返ると恥ずかしくなるのが私の歴史。だけどそのときは真面目に書いていた訳でね。そんな今の私を書いていく。

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();と一緒だな。