2013-07-20 13 views
6

Was ist der JavaScript-Typ "Symbol" as mentioned in this ECMAScript 6 draft specification?JavaScript Symboltyp: (Nicht-String-Objektschlüssel)

die Spezifikation zitieren:

Der Symboltyp die Menge aller nicht-String-Werte, die als Schlüssel einer Objekteigenschaft verwendet werden können.

Alle möglichen Symbolwerte sind eindeutig und unveränderlich.

Symbolwerte haben ein einzelnes beobachtbares Attribut namens [[Privat]], dessen unveränderlicher Wert entweder wahr oder falsch ist. Ein privates Symbol ist ein Symbol-Wert, dessen Attribut [[Privat]] den Wert wahr hat.

Ich dachte Objektschlüssel wären nur Zeichenfolgen, und ich bin nicht allein. Zitieren this accepted SO answer:

... Objektschlüssel sind immer Strings ...

Können Sie sich erklären, was der Symboltyp ist, und seine Verwendung demonstrieren. Ich versuche, die Spezifikation zu verstehen.

Danke!

+1

Das ist ES6 spec, nicht sicher, aber sehen, ob dies hilft: https://github.com/dherman/tc39-codex-wiki/blob/master/data/es6/symbols/index.md – elclanrs

Antwort

6

Ich dachte, Objektschlüssel Saiten waren nur

Du hast Recht, aber das war nur für EcmaScript 5 wahr. ES 6/Harmonie ist ein Entwurf für etwas Neues!

Ich versuche Sinn der spec

Es ist ein Entwurf nur zu machen, rapidly changing. Wie Symbole verwendet werden und ob oder wie sie durch beliebige Skripte erstellt werden können, scheint sich noch nicht erledigt zu haben (durch die versions nach Änderungen scannen).

Wenn Sie bis zum Ende der that document nach unten scrollen (auch unter Anhang F), können Sie zum Beispiel sehen, ein Abschnitt 8.4.4: Symbol Exotische Objekte, die dort ausgezogen ist. Es gibt

Exotische Symbolobjekte bieten alternative Definitionen für alle wesentlichen internen Methoden.

Sie können sie zum Beispiel unter section 8.1.7.4 Well-Known Symbols and Intrinsics verwendet sehen.Für vorgeschlagene Verwendungen (und noch bestehende Probleme/offene Fragen) von Symbol Konstruktoren haben einen Blick auf thesestrawman Seiten oder this wiki site.

+0

Danke. Das war informativ. –

0

Symbol ist eine neue Ergänzung der Sprache als Teil ECMAScript 6 vorgeschlagen:

Aktuelle Arbeiten auf ECMAScript ™

Arbeit an zukünftigen ECMAScript ™ Ausgaben im Rahmen der bereits angekündigten ECMAScript weiterhin ™ „Harmony "Projekt. Weitere Details der aktuellen Arbeit zu ECMAScript "Harmony" sind in diesem Wiki beschrieben. Eine sechste Ausgabe des Standards befindet sich derzeit in der Entwicklung und soll im Dezember 2013 fertiggestellt werden.

+0

Anwendungsbeispiele? –

+1

Siehe Abschnitt [8.1.7.4] (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-8.1.7.4) für die integrierten Symbole – Barmar

Verwandte Themen