次のJavaScriptを書くのがますます増えています。これが共通のパターンかどうかを知りたいと思います。コードパターンのこれは有効なパターンで、それは何と呼ばれていますか?
パート:
var fruits = ["pear", "apple", "banana"];
var getNextFruit = function() {
var _index = 0,
_numberOfFruits = fruits.length;
getNextFruit = function() {
render(fruits[_index]);
_index = (_index + 1) % _numberOfFruits;
}
getNextFruit();
};
は私が機能を再定義し、それをすぐに呼び出す関数内で、パラメータを取らない機能を持っています。関数型言語では、これは返される関数である可能性があります.JavaScriptを使用すると、関数の名前を再利用できるため、JavaScriptが簡単になります。したがって、実装を変更することなく機能を拡張することができます。
このパターンは、あなたの「キャッシュ」がラップアラウンド状態であるメモ作成に非常に便利だと想像することもできます。
私は時には意味がある場合に状態を得ることができる関数のget
またはset
メソッドでこれを実装します。追加されたフィドルはこれの例を示しています。
これは主にJavaScriptを志向質問ですので:The obligatory fiddle
基本的なデータ型を気にせずに、コレクションの要素を1つ1つ「生成」することは、[iterator](https://en.wikipedia.org/wiki)と呼ばれています。/Iterator_pattern)パターンである。 –
このパターンは「自己定義関数」と呼ばれ、Stoyanovの本「Javascript Patterns」に導入されました –
関数内に 'fruits'変数と配列を定義しないのはなぜですか? – nnnnnn