javascriptで再帰処理

こんな感じで書きました。

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>再帰呼び出しサンプル</title>
  </head>
  <body>
    <p id="msg_aisatu1">おはよう</p>
    <p id="msg_aisatu2">こんにちは</p>
    <p id="msg_aisatu3">おげんきですか</p>
    <p id="msg_aisatu4">調子はどうだい?</p>
  </body>
  <script type="text/javascript">
    var Sample = function(){
      var _getUniqId = function(id){
        //javascriptはvoid関数が無いため、このように対応した
        var result = id;
        var func = function(id, cnt){
          var searchId = id + (cnt ? cnt : 1);
          var tgtEle = document.getElementById(searchId);
          if(tgtEle !== null)
            func(id, cnt ? ++cnt : 1);
          else
            result = searchId;
        }
        func(id);
        return result;
      }
      
      return{ getUniqId : _getUniqId }
    };
  
    var obj1 = new Sample();
    var result = obj1.getUniqId("msg_aisatu");
    
    //検索結果:msg_aisatu5
    console.log("検索結果:" + result);
  </script>
</html>