Я просто наткнулся на документацию для нового (предлагаемого для 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 property</button>