Ho lavorato a un progetto in JavaScript che richiede una struttura dati (sola lettura), da condividere tra due funzioni.
var mySharedData = ['hours', 'minutes', 'seconds'];
Ora ho due funzioni che richiedono l'accesso a questa struttura di dati di sola lettura (statica).
var sampleFunction1 = function(userSuppliedData) {
//map over user data applying mySharedData to it
};
var sampleFunction2 = function(userSuppliedData) {
//reduce user data also accessing mySharedData
};
Poiché questo è JavaScript e entrambe le funzioni sono nello stesso ambito, potrei semplicemente "imbrogliare" e sfruttare il cattivo scope di var e accedere ai dati condivisi in entrambe le funzioni, ma non mi sembra che questo sia il modo corretto di fare esso.
Ho anche considerato di utilizzare entrambe le funzioni e di passare i dati condivisi come primo argomento in questo modo:
var mySharedData = ['hours', 'minutes', 'seconds'];
var sampleFunction1 = _.curry(function(sharedData, userSuppliedData) {
//map over user data applying sharedData to it
})(mySharedData);
var sampleFunction2 = _.curry(function(sharedData, userSuppliedData) {
//reduce user data also accessing sharedData
})(mySharedData);
Qual è il modo consigliato di condividere i dati tra le funzioni? Questo dovrebbe essere fatto anche nella programmazione funzionale o sto rendendo impure le mie funzioni con strutture dati condivise?