1回だけ呼び出される内部のメソッドはどう書くべきなのか
function A(){};
A.prototype.a = function() {
// 他のなんらかの処理
// A.prototype._bの呼び出し
this._b();
};
A.prototype._b = function() {};
A.prototype._b
は A.prototype.a
でのみ利用され、 Node や Browserify で require('A')
として扱うモジュールを想定しています。( module.exports
は省略します)
この場合 A.prototype._b
はどう書くのが望ましいといえるでしょうか。
上記のコードは個人的には違和感があり、
- パブリックであること
- 1度しか呼び出さないのにも関わらずメソッドであること
などが挙げられます。それらを解決するとなれば、
ex1: プライベートで、関数にした場合
function A(){};
var _b = function();
A.prototype.a = function() {
_b();
};
のようなコードや、
ex2: ベタ書きで問題ないと判断した場合
function A(){};
// var _b = function();
A.prototype.a = function() {
// _b()と同様の処理をここにベタ書き
};
といったコードが思い浮かびます。
しかし、
var _b = func~
とするのは独立していて違和感がある- であれば
A._b = func~
のような形はどうか - いずれも納得できないのであれば、「1回だけ呼び出すならなんでもかんでもベタ書き」ということでいいのか
このようにどうすべきなのか判断がつきません。
これでは自分の中で考えても仕方がないので、結局のところこのケースでは A.prototype._b
はどう書くのがベストなのか教えていただけないでしょうか。
JavaScript なのでそこまでプライベートにこだわっているわけではなく、一般的な実装として望ましい形を知りたいと思っています。
よろしくお願いします。