Browser

Microsoft Edge(Project Spartan, Internet Explorer) 、ブラウザ周辺、Web フロントエンド開発、UI、など

Microsoft Edge まとめページ

Microsoft Edge の機能を調べてみた - Iterator/Symbol 編

Microsoft Edge の JavaScript で新しい型 Symbol が追加されました。
オブジェクトなどのプロパティのキーとして使用できるプリミティブな型です。
ちなみにこやつを new することはできません。

 

for in からでは Symbol を参照できません

オブジェクト c に Symbol のプロパティをキーとして設定すると取得できます。

そのため、オブジェクト c の数を求めるとシンボルは含まれません

 


Symbol.for()

Symbol の値を共有したい場合は Symbol.for() を使用します。

 

Symbol.keyFor()

Symbol.for() で設定した値を返します

以上のことから、関数やクラス内で使うことで外部からアクセスしずらいプライベートな値をつくることができます。

(Object.getOwnPropertySymbols() で Symbol を参照できるため完全にアクセスできないわけではない)

 

Symbol.iterator

他のイテレータ(反復子)と同じような感じもので Generator の yield などで効力を発揮します。

ちなみにオブジェクトでは使用することはできず上の例では配列を使っています。
使用できるもの Array、TypedArray、String、Map、Set だそうです。

 

Microsoft Edge の機能を調べてみた - Iterator/for-of 編 に続く

browser.hatenablog.com

 

スポンサーリンク