ここにはいくつかのアプローチがあります。
Javascriptは、コード内の任意の場所で定義して変数に割り当てることができる無名関数をサポートしています。
したがって、次のように書くことができます。
function foo() {
var bar = function() { /* some code */ };
bar();
}
そして、bar
他のどこでも利用できないでしょう。これは機能をカプセル化するのに役立つかもしれませんが、開発のための非常にスケーラブルなモデルではないと思います。
一度だけ呼び出される関数は、将来、複数回呼び出す価値のあるものになる可能性があることを示唆する考え方があります。この場合、「プライベート」な関数を作成できます。
var Foo = (function() {
var Foo = function() {
/* some constructor code */
};
var private = function() { /* a private function */ };
Foo.prototype.public = function() {
private();
/* And some other stuff */
};
return Foo;
})();
var foo = new Foo();
foo.public(); /* Includes a call to the private method */
この場合、あなたのprivate
方法は本当にプライベートなので、内部の仕組みを世界に公開する必要はありません。
しかし実際には、それはアクセス変更を実装する方法についての議論です。その質問に答えるためにそこにたくさんの情報があります。より大きな設計上の問題は、個別の機能を実装するのか、それとも単にそれらをインライン化するのかということです。
私の選択は、一般的に、まとまりのある関数を関数に押し込むことです。関数呼び出しのコストはゼロではありませんが、事後に心配してください...関数呼び出しがパフォーマンスのボトルネックであることがわかった場合は、呼び出しが多すぎるかどうか、リファクタリングする必要があるかどうかを心配できます。使用する呼び出しを減らすためのコード。
それまでは、関数を記述して呼び出し、明確なコードを楽しんでください。適切なメソッド名を使用していることを確認してください:)