Baseline Widely available
Symbol.iterator
â извеÑÑнÑй Ñимвол, задаÑÑий иÑеÑаÑÐ¾Ñ Ð¾Ð±ÑекÑа, иÑполÑзÑемÑй по ÑмолÑаниÑ. ÐÑименÑеÑÑÑ Ð² конÑÑÑÑкÑии for...of
.
ÐаждÑй Ñаз, когда обÑÐµÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð¿ÑоиÑеÑиÑован (как, напÑимеÑ, в наÑале Ñикла for..of
), меÑод @@iterator
вÑзÑваеÑÑÑ Ð±ÐµÐ· аÑгÑменÑов, а возвÑаÑÑннÑй иÑеÑаÑÐ¾Ñ Ð¸ÑполÑзÑеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений.
ÐекоÑоÑÑе вÑÑÑоеннÑе ÑÐ¸Ð¿Ñ Ð¸Ð¼ÐµÑÑ ÑÑандаÑÑное иÑеÑаÑионное поведение, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº дÑÑгие ÑÐ¸Ð¿Ñ (как Object
) Ñаким ÑвойÑÑвом не обладаÑÑ. ÐеÑод @@iterator
имеÑÑ ÑледÑÑÑие вÑÑÑоеннÑе ÑипÑ:
Array.prototype[@@iterator]()
TypedArray.prototype[@@iterator]()
String.prototype[@@iterator]()
Map.prototype[@@iterator]()
Set.prototype[@@iterator]()
СмоÑÑиÑе Ñакже ÐÑоÑÐ¾ÐºÐ¾Ð»Ñ Ð¿ÐµÑебоÑа Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ñведений.
ÐÑимеÑÑ ÐолÑзоваÑелÑÑкие иÑеÑиÑÑемÑе обÑекÑÑÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ ÑоздаваÑÑ ÑобÑÑвеннÑе иÑеÑиÑÑемÑе обÑекÑÑ, подобно ÑледÑÑÑÐµÐ¼Ñ ÐºÐ¾Ð´Ñ:
var myIterable = {};
myIterable[Symbol.iterator] = function* () {
yield 1;
yield 2;
yield 3;
};
[...myIterable]; // [1, 2, 3]
ÐлоÑ
о оÑоÑмленнÑе иÑеÑаÑоÑÑ
ÐÑли меÑод @@iterator
обÑекÑа не возвÑаÑÐ°ÐµÑ Ð¸ÑеÑаÑоÑ, Ñо ÑÑо плоÑ
о оÑоÑмленнÑй иÑеÑиÑÑемÑй обÑекÑ, его иÑполÑзование, ÑкоÑее вÑего, пÑиведÑÑ Ðº Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¸ÑклÑÑений или непÑавилÑÐ½Ð¾Ð¼Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ:
var nonWellFormedIterable = {}
nonWellFormedIterable[Symbol.iterator] = () => 1
[...nonWellFormedIterable] // TypeError: [] is not a function
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4