Javascript 関数定義の疑問
Javascriptを勉強しはじめてからDan Kogaiさんのブログ404 Blog Not Foundを読んでいるのですが関数(コンストラクタ)定義について謎に思っていることがありまして。
例えばこの記事404 Blog Not Found:javascript - からnewを取り除いてみるですが一番上のサンプルコード内のPoint()というコンストラクタが
var Point = function Point(x, y){ this.x = x; this.y = y; };
のようにPointという有名(無名でないと言う意味で)で宣言した関数を更に同名の変数に代入しています。
これの理由がわからないんですよね。
var Point = function(){}
や
function Point(){}
という書き方なら知っていたのですがこれは初めてみたので。
スコープの違う同名のコンストラクタを定義しているわけでもないようですし・・・。
ちょっとググッたくらいでは理由はわからなかったのですがDan Kogaiさんの他の記事ではこの方法じゃない普通の(?)定義が使われているものもあるので何かこの場合の事情があるはず。
うーん、謎。