Я нахожу, что я пишу следующий 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 просто упрощает работу, потому что вы можете повторно использовать имя функции. Таким образом, вы можете расширить функциональность, не изменяя свою реализацию.
Я также могу представить, что этот шаблон очень полезен для memoization, где ваш «кеш» - это состояние, которое мы обертываем.
Я даже иногда реализую это с помощью метода get
или set
о функции, где я могу получить состояние, если оно имеет смысл. Примером этого является добавленная скрипка.
Потому что это в первую очередь JavaScript ориентированный вопрос: The obligatory fiddle
Не уверен, что делает «render», но «производя» элементы коллекции один за другим, не заботясь о базовом типе данных, называется [iterator] (https://en.wikipedia.org/wiki/Iterator_pattern). –
Образец называется «самоопределяющейся функцией», имя было введено в книге Стоянова «Шаблоны JavaScript» –
Почему бы вам не определить переменную и массив «фрукты» внутри этой функции? – nnnnnn