7

この ECMAScript 6 ドラフト仕様で言及されている "Symbol" JavaScript タイプとは何ですか?

仕様を引用するには:

Symbol 型は、Object プロパティのキーとして使用できるすべての非 String 値のセットです。

可能な Symbol 値はそれぞれ一意であり、不変です。

シンボル値には、[[Private]] と呼ばれる単一の監視可能な属性があり、その不変値は true または false です。プライベート シンボルは、[[Private]] 属性の値が true の Symbol 値です。

オブジェクトのキーは文字列だけだと思っていましたが、私だけではありません。この受け入れられたSOの回答を引用するには:

…オブジェクト キーは常に文字列です…</p>

シンボル タイプとは何かを説明し、その使用法を示していただけますか。私は仕様を理解しようとしています。

ありがとう!

4

3 に答える 3

6

オブジェクトキーは文字列のみだと思っていました

その通りですが、これは EcmaScript 5 のみに当てはまりました。ES 6 / ハーモニーは何か新しいもののドラフトです!

仕様を理解しようとしている

これは下書きのみで、急速に変化しています。シンボルがどのように使用され、任意のスクリプトでシンボルを作成できるかどうか、またはどのように作成できるかについては、まだ解決していないようです (バージョンをスキャンして変更を確認してください)。

そのドキュメントの最後までスクロールすると(付属書 F の下であっても)、たとえばセクション 8.4.4: シンボルのエキゾチック オブジェクトが移動されていることがわかります。それは述べています

Exotic Symbol オブジェクトは、すべての重要な内部メソッドの代替定義を提供します。

たとえば、セクション 8.1.7.4 Well-Known Symbols and Intrinsicsで使用されていることがわかります。Symbolコンストラクターの提案された使用法 (およびまだ存在する問題/未解決の問題) については、これらの ストローマンページまたはこの wiki サイトを参照してください。

于 2013-07-20T13:15:55.033 に答える
0

Symbolは、 ECMAScript 6の一部として提案された言語に新たに追加されたものです。

ECMAScript™ に関する現在の作業</p>

将来の ECMAScript™ エディションの作業は、以前に発表された ECMAScript™ "Harmony" プロジェクトの一部として継続されます。ECMAScript "Harmony" に関する現在の作業の詳細は、この Wiki で説明されています。2013 年 12 月の完成を目標に、現在、規格の第 6 版が作成中です。

于 2013-07-20T07:22:17.170 に答える