ES2015 определяет новый метод на Object
, getOwnPropertySymbols
. Я использую это, чтобы получить все ключи символов из объекта У меня есть:Что определяет порядок символов, возвращаемых из Object.getOwnPropertySymbols?
let syms = Object.getOwnPropertySymbols(myObj);
Раньше я работал в предположении, что возвращение порядок был определен путем сортировки версии строки символов. Быстрый тест показал, что это было неправильно:
let obj = {};
obj[Symbol('Stack')] = 'Stack';
obj[Symbol('Overflow')] = 'Overflow';
Object.getOwnPropertySymbols(obj); // [ Symbol(Stack), Symbol(Overflow) ]
Как это определить? Это порядок, который они добавили в глобальный реестр Symbol, или просто «случайный», как обычный Object.keys
?
порядок вставки, так же как и другие свойства, кроме клавиш расширения, которые численно сортируются, но это не символы, а просто вставка. – dandavis
@ dandavis это был ответ, ответьте ниже! Если я пропустил что-нибудь, сообщите мне – SomeKittens
, почему вы это сделаете? – dandavis