1回だけ呼び出される内部のメソッドはどう書くべきなのか

[code]

    function A(){};
    
    A.prototype.a = function() {
      // 他のなんらかの処理
    
      // A.prototype._bの呼び出し
      this._b();
    };
    
    A.prototype._b = function() {};
    
[/code]

`A.prototype._b` は `A.prototype.a` でのみ利用され、 Node や Browserify で `require('A')`
として扱うモジュールを想定しています。( `module.exports` は省略します)

この場合 `A.prototype._b` はどう書くのが望ましいといえるでしょうか。

上記のコードは個人的には違和感があり、

  * パブリックであること
  * 1度しか呼び出さないのにも関わらずメソッドであること

などが挙げられます。それらを解決するとなれば、

**ex1: プライベートで、関数にした場合**

[code]

    function A(){};
    var _b = function();
    
    A.prototype.a = function() {
      _b();
    };
    
[/code]

のようなコードや、

**ex2: ベタ書きで問題ないと判断した場合**

[code]

    function A(){};
    // var _b = function();
    
    A.prototype.a = function() {
      // _b()と同様の処理をここにベタ書き
    };
    
[/code]

といったコードが思い浮かびます。

しかし、

  * `var _b = func~`とするのは独立していて違和感がある
  * であれば `A._b = func~` のような形はどうか
  * いずれも納得できないのであれば、「1回だけ呼び出すならなんでもかんでもベタ書き」ということでいいのか

このようにどうすべきなのか判断がつきません。

これでは自分の中で考えても仕方がないので、結局のところこのケースでは `A.prototype._b`
はどう書くのがベストなのか教えていただけないでしょうか。

JavaScript なのでそこまでプライベートにこだわっているわけではなく、一般的な実装として望ましい形を知りたいと思っています。

よろしくお願いします。




JavaScriptそんなに詳しくないですが書いてみました。スコープを制限してそれっぽく見せる作戦

[code]

    var A = function() {}
    (function(A){
        var b = function(obj) { console.log('name=' + obj.name); };
        A.prototype.a = function() { b(this); }
     })(A);
    
    var b = new A();
    b.name = 'fkm';
    b.a(); // name=fkmをログに出力
    
[/code]

