Я пишу код JavaScript, и я стараюсь использовать его функциональный язык.
В других функциональных языках (или даже в Ruby), если я явно не задал возвращаемое значение функции, оно вернет значение последнего оцениваемого выражения. JavaScript не соответствует этой схеме. (Если быть точным, JavaScript всегда возвращает значение. Если ничего не было установлено, тогда undefined
.)
Мой вопрос заключается в следующем: у меня есть функция, которая не нуждается (и не возвращает) значение. Имеет ли смысл в контексте функционального программирования иметь функцию без явного возвращаемого значения? Или что-то случилось, если я оказался в этом случае?
Например, у меня есть следующая функция. Он периодически проверяет, был ли изменен хэш местоположения, и если это так, вызывает данную функцию.
LIB_hashManager = function(f, context) {
var prev = '';
var pollHash = function() {
if (prev !== window.location.hash) {
prev = window.location.hash;
f.apply(context);
}
};
window.setInterval(pollHash, 100);
};
Должен ли я вернуться сюда что-нибудь?
Обновление
Между тем мне пришло в голову, что если в будущем мне нужно будет расширить знания LIB_hashManager
, следуя шаблону функционального конструктора, я могу просто добавить методы к объекту, а LIB_hashManager
вернет это созданный объект.
LIB_hashManager = function(f, context) {
// inside logic
// ...
};
И позже я могу написать:
LIB_hashManager = function(f, context) {
// inside logic
// ...
// return public methods
return {
// ...
}
};
Итак, не имеет смысла тогда возвращать пустой объект в первом случае?