JavaScript 〜 関数の初回呼び出し時にだけ実行したい処理を書く場合

自己定義化関数を使用すれば良いと思ったので、下記のように実装。

var sampleFunc = function(){
 //初期値設定などの初期化処理
 var initVar = 初期値;
 
 sampleFunc = function(){
   //2回目以降に実行される部分
 }
}

最初、自己定義化関数の中身も初回関数呼び出し時に実行され、初回以降は自己定義化関数の中身だけが実行されると思っていたが、そうではない。
初回は初期化処理と関数定義だけが行われる。