2013-07-20 13 views
6

Che cos'è il javascript "Simbolo" as mentioned in this ECMAScript 6 draft specification?JavaScript Tipo di simbolo: (chiavi senza stringa di oggetti)

Per citare la specifica:

il tipo di simbolo è l'insieme di tutti i valori non stringa che possono essere utilizzati come chiave di una proprietà dell'oggetto.

Ogni possibile valore di simbolo è unico e immutabile.

valori dei simboli hanno un singolo attributo osservabile chiamato [[privato]] il cui valore è immutabile sia vero o falso. Un simbolo privato è un valore Symbol il cui attributo [[Privato]] ha il valore true.

Ho pensato che le chiavi degli oggetti erano solo stringhe e io non sono solo. Per citare this accepted SO answer:

... chiavi oggetto sono sempre stringhe ...

Ci può spiegare ciò che il tipo di simbolo è, e dimostrare il suo utilizzo. Sto cercando di dare un senso alle specifiche.

Grazie!

+1

Questa è la specifica ES6, non è sicuro, ma vedere se questo aiuta: https://github.com/dherman/tc39-codex-wiki/blob/master/data/es6/symbols/index.md – elclanrs

risposta

6

ho pensato chiavi oggetto sono stati solo

Hai ragione corde, ma che è stato vero per EcmaScript 5 solo. ES 6/harmony è una bozza per qualcosa di nuovo!

Sto cercando di dare un senso al spec

E 'solo una bozza, rapidly changing. Come vengono utilizzati i simboli e se o come possono essere creati da script arbitrari non sembra essersi ancora risolto (scansionare il versions per le modifiche).

Se si scorre verso il basso fino alla fine della that document (anche sotto allegato F), è ad esempio vedrà un Sezione 8.4.4: Simbolo esotiche oggetti che è stato spostato là fuori. Si afferma

Gli oggetti simbolo esotici forniscono definizioni alternative per tutti i metodi interni essenziali.

È possibile vederli utilizzati a section 8.1.7.4 Well-Known Symbols and Intrinsics ad esempio.Per gli usi proposti (e problemi ancora esistenti/domande aperte) dei costruttori Symbol dare un'occhiata a thesestrawman pagine o this wiki site.

+0

Grazie. Questo è stato informativo. –

0

Symbol è una nuova aggiunta al linguaggio proposto come parte di ECMAScript 6:

lavori in corso su ECMAScript ™

lavori sul futuro ECMAScript ™ edizioni continua come parte del ECMAScript precedentemente annunciato ™ "Harmony "progetto. Maggiori dettagli sul lavoro attuale su ECMAScript "Harmony" sono descritti su questo Wiki. Una sesta edizione dello standard è attualmente in fase di sviluppo con una data obiettivo di dicembre 2013 per il completamento.

+0

Esempi di utilizzo? –

+1

Vedere la sezione [8.1.7.4] (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-8.1.7.4) per i simboli incorporati – Barmar

Problemi correlati