JavaScriptのSymbol特性と使用

796 ワード

Symbolは、JavaScriptにおけるSymbol関数を用いて、このタイプのインスタンスを作成するデータタイプである.次のように:
let sym = Symbol("str");
関数が入ってきた文字列は、作成されたインスタンスを記述するために使用されます.
Symbol()が生成する値は匿名であり、列挙できない、一意の値である.Symbolタイプの唯一の合理的な使い方は、Symbol値を変数で格納し、格納された値でオブジェクト属性を作成することである.
const pro = Symbol();
let obj = {};
obj[pro] = "symbol prototype";
自分で創建する以外に、JavaScriptはいくつか内の建てたsmbolを提供しました.例えばSymbol.iteratorは、オブジェクトのデフォルトのディケンサを返すために使用され、Objectが反復的な動作をするために使用されます.
var obj = {
 a: 1
};

obj[Symbol.iterator] = function () {
  return {
    next: function () {
        return {
            /*         ,      ,done   true       */
            value: 1,
            done: false
        }
    }
};
 }

for (let val of obj) {
console.log(val);//        1
}