2013-10-12 14 views
40

Sto dando un'occhiata al codice sorgente angolare 1.2 e sono curioso di sapere perché alcune funzioni hanno come prefisso i due segni del dollaro. È una specie di convenzione?

+1

vedi anche: http://stackoverflow.com/questions/12648543/angularjs-and-its-use-of-dollar-variables –

+0

Wow, tanti altri si chiedevano la stessa cosa haha. – ThinkingInBits

risposta

52
  • singolo $ per riservate, identificatori pubblici
  • doppio $$ per riservati privati ​​ identificatori

Per citare il docs:

$ Prefix Naming Convention

...

Se si ispeziona un ambito, è possibile notare alcune proprietà che iniziano con $$. Queste proprietà sono considerate private e non devono essere consultate o modificate.

5

Se posso aggiungere:

Angularjs Docs

Altro che essere significativo per Angularjs, il '$$' o '$' sono solo i caratteri che sono ammessi nei nomi delle variabili. Angularjs utilizza entrambi per identificare l'importanza per te e il loro team di sviluppo.

È possibile nominare tutte le variabili allo stesso modo; ma per evitare di nominare collisioni, stare lontano da questa pratica. Ecco alcuni esempi se hai fatto ...

$$$$myVariableName; $myVariableName$; _myVariableName_; $$$$$$myVariableName$$$$$$$$ 

Ecco un link per testare i nomi delle variabili JS, se lo si desidera:

Variable Name Validator

Ecco un link per MDN pure che spiega caratteri consentiti:

MDN allowed characters link

ed ecco il testo:

Variabili

si utilizzano variabili come nomi simbolici per i valori nell'applicazione. I nomi delle variabili, chiamati identificatori, sono conformi a determinate regole.

Un identificativo JavaScript deve iniziare con una lettera, un carattere di sottolineatura (_) o un segno di dollaro ($); caratteri successivi possono anche essere cifre (0-9). Poiché JavaScript distingue tra maiuscole e minuscole, le lettere includono i caratteri da "A" a "Z" (maiuscolo) e i caratteri da "a" a "z" (lettere minuscole).

A partire da JavaScript 1.5, è possibile utilizzare le lettere ISO 8859-1 o Unicode come å e ü negli identificatori. Puoi anche utilizzare le sequenze di escape Unicode \ uXXXX come caratteri negli identificatori.

Alcuni esempi di nomi legali sono Number_hits, temp99 e _name.

Angulajs include un bel po 'di informazioni in ciascun oggetto; alcuni degli elementi sono per Angularjs e alcuni sono per lo sviluppatore, il che significa che alcuni potrebbero non essere modificabili, ma tutti dovrebbero essere disponibili come riferimento se questo è ciò che avresti intenzione di usarlo.

Tuttavia, nelle versioni future eventuali identificatori privati ​​potrebbero scomparire in quanto il team di Angularjs si aspetta che lo sviluppatore non utilizzi i nomi riservati/privati.

Nel caso del postato 'link' qui è quello che Angularjs dice:

$ Prefix Naming Convention È possibile creare i propri servizi, ed infatti faremo esattamente questo nel passaggio 11. Come convenzione di denominazione, i servizi integrati di Angular, i metodi Scope e alcune altre API angolari hanno un prefisso $ davanti al nome.

Il prefisso $ è disponibile per lo spazio dei nomi Servizi forniti da Angular. Per evitare collisioni è meglio evitare di nominare i propri servizi e modelli qualsiasi cosa inizi con $.

Se si ispeziona un ambito, è possibile notare alcune proprietà che iniziano con $$. Queste proprietà sono considerate private e non devono essere consultate o modificate.

Problemi correlati