Symbol

Symbol - новий тип даних для створення унікальних ідентифікаторів.

Синтакcис:

var objectSymbol = Symbol(description);

Параметри:

objectSymbol - змінна якій присвоюється об'єкт Symbol.

description - не обов'язково вказувати. Рядок з описом Symbol.

Опис:

Symbol новий тип даних для створення унікальних ідентифікаторів.

Кожен ідентифікатор який створюється є унікальним.

Значення символу може використовуватися як ідентифікатор (ключ) для властивостей об'єкта, це типова мета типу даних Symbol.

Зверніть увагу що при створені типу Symbol не потрібно використовувати new.

При створені ключа для об'єкти за допомого Symbol дозволяє приховати даний ключ від for in, for of. Але його можна побачити за допомогою методу Object.getOwnPropertySymbols().

var key=Symbol('js'); var ob={}; ob['name']='JavaScript'; ob[key]='test'; for(a in ob)alert(a); var symbols=Object.getOwnPropertySymbols(ob); alert( symbols[0].toString() );

Приклад:

var symbol1=Symbol('test'); var symbol2=Symbol(3); var symbol3=Symbol(); var ob=Symbol('js'); alert(ob.toString() );

Приклад того що кожен створений Symbol є унікальним:

var symbol1=Symbol('test'); var symbol2=Symbol('test'); alert(symbol1==symbol2);

Приклад застовання Symbol:

var ob={}; var symbol=Symbol('name'); ob={}; ob.test='js'; ob[symbol]='JavaScript'; alert( ob[symbol] ); var ob={a:12, b:10, [Symbol.for('c')]:'test Symbol'}; alert( ob[Symbol.for('c')] );