Non dovrei provare a emulare i dati della classe privata in javascript?

1

Quindi ho creato questa libreria in stile ORM per AngularJS (JavaScript) e siccome provengo da uno sfondo C ++ / PHP / C #, cerco sempre di assicurarmi che le cose private rimangano private. Anche se questo può essere realizzato in JavaScript, continuo a riscontrare problemi che devo risolvere probabilmente perché JavaScript non ha realmente il sistema di classi di transizione a cui sono abituato.

Devo solo adottare l'approccio Python e consentire alle persone di accedere a metodi / dati privati se pensano di sapere cosa stanno facendo? Questo tipo di approccio è comune nel mondo JavaScript?

    
posta ryanzec 30.04.2013 - 00:34
fonte

1 risposta

5

Utilizza una convenzione ben stabilita, come un trattino basso principale o uno schema come Revealing Module Pattern .

Uno dei vantaggi dell'utilizzo di un modello che impone la visibilità a livello di linguaggio piuttosto che l'uso di una convenzione di denominazione è il supporto intellisense. Gli sviluppatori che lavorano in un IDE potrebbero non voler vedere i metodi e i dati privati.

La cosa più importante, tuttavia, è che comunichi il tuo intento ad altri programmatori , indipendentemente dal fatto che stiano lavorando sulla libreria stessa o semplicemente utilizzandola. In questo modo è chiaro quali metodi e variabili sono considerati dettagli di implementazione che sono soggetti a modifiche. Ti aiuterà anche come sviluppatore per ridurre al minimo le tue dipendenze nel codice.

La domanda che devi decidere, quindi, è se vuoi applicarla a livello di lingua, in modo che il tentativo di accedervi sia un errore che richiederebbe di cambiare il codice sorgente per aggirare. La convenzione di denominazione è più semplice e meno rigorosa, ma richiede più disciplina.

    
risposta data 30.04.2013 - 04:21
fonte

Leggi altre domande sui tag