Каковы возможные сценарии использования нового типа данных JavaScript «Symbol»?

Я просто наткнулся на документацию для нового (предложенного для ES6, но уже реализованного в Firefox, Chrome & Opera) типа данных в JavaScript,Symbol:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects

Я читаю об этом, но я просто не могу вспомнить возможный сценарий использования.

В документации сказано:

Символ является уникальным и неизменным типом данных и может использоваться в качестве идентификатора для свойств объекта.

Хорошо, хорошо, допустим, я делаю так, как написано в документации:

obj[Symbol("a")] = "a";

но, поскольку Symbol ('a') всегда возвращает уникальное значение (объект) и:

Символы не видны в течение ... в итерациях.

как я могу получить свою собственность изobj?

var obj = { normalProperty: 'just a string' };
obj[Symbol('a')] = 'a';

document.getElementById('retrieve').addEventListener('click', function() {
  document.write('Stringified object:' + JSON.stringify(obj) + '<br/><br/>');
  document.write('Trying to get Symbol-property value, aaaand...: <br/>');
  document.write(obj[Symbol('a')]); // undefined
}, false);
<button id="retrieve">Retrieve obj's property</button>

редактировать

Конечно, вы можете получить его так:

var x = Symbol('a');
obj[x] = 'a';
obj[x]; // "a"

но что этоцель делать это таким образом?

Заранее спасибо :)

Ответы на вопрос(2)

Ваш ответ на вопрос