2016-11-19 2 views
3

Что такое соглашение за двойным в (@@) в объявлениях методов?Конвенция @@

Например, из: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols

Всякий раз, когда объект должен быть итеративно (например, в начале цикла for..of), его @@ метод итератора вызывается без аргументов, и возвращенный итератор используется для получения значений, которые нужно повторить.

+0

Я думаю, это потому, что ... это крайне маловероятно, чтобы кто-то уже есть '' @@ так это заставляет его выглядеть «особенным». – vlaz

ответ

7

Это спецификация сокращений для "well-known symbols", а не то, что вы набираете буквально. Например, @@iterator является Symbol.iterator, который является ключом вы будете использовать, чтобы получить по умолчанию iterator для объекта:

let defaultIterator = theObject[Symbol.iterator]; 
Смежные вопросы