Attualmente sto riscrivendo un codice C++ scientifico usando Javascript e vorrei mantenere la stessa organizzazione di base se possibile. Nel codice C++, ci sono un certo numero di classi che contengono un mucchio di dati const
nel da molti matrici differenti e una serie di metodi public static
che funzionano su quei dati. Sto cercando di replicare qualcosa di simile in Javascript.Come faccio a "nascondere" le variabili in Javascript mentre espongo i metodi statici pubblici?
Al momento sto usando qualcosa come il seguente:
function mars(){}
mars.x = [{A:1, B:2, C:3},{A:1, B:2, C:3}]; //...
mars.y = [{A:1, B:4, C:2},{A:1, B:2, C:3}]; //...
// ...about 600 lines in total
mars.doSomething = function(foo){
var result = 0;
// Do lots of processing of above arrays
return result;
}
mars.doSomethingElse = function(bar){
var result = 0;
// Do lots of processing of above arrays
return result;
}
console.log(mars.doSomething(3))
Questo funziona, ma espone mars.x
ecc per il resto del codice che in realtà non ha bisogno di sapere su di esso. Se utilizzo prototype
, i metodi non saranno più statici e il codice sarà pieno di chiamate new
, qualcosa che non desidero.
Quello che sto chiedendo allora è: Come posso nascondere le variabili in JavaScript mentre esponi i metodi statici al resto del codice? O mi sto preoccupando di qualcosa che non dovrei essere?
Per il resto del codice, intendi i metodi della tua classe? – Sprottenwels
Ti stai preoccupando di qualcosa che non dovresti essere! – adeneo
@Sprottenwels No, intendo le altre circa 50 classi di funzioni (centinaia di funzioni in totale). Mi sento come se fossi una figliata globale con un sacco di cose di cui la maggior parte delle altre classi non ha bisogno di sapere nulla. –