Объект
Enumerator используется для просмотра элементов коллекций.
Коллекции — это списки объектов, реализованные в исполняющей системе JScript, но непосредственно не доступные пользователю. В частности, мы не можем добраться до их элементов ни с помощью индексов, ни с помощью оператора
for…in. Вместо этого мы должны создать для коллекции объект
Enumerator, а затем последовательно перемещать его указатель от текущего элемента коллекции к следующему. Объект создается конструктором
new Enumerator(коллекция)
где
коллекция — любой объект, являющийся коллекцией. При создании объекта его указатель устанавливается на первый элемент коллекции.
Следующий сценарий позаимствован из документации к JScript и демонстрирует использование данного объекта:
function showDrives()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var e = new Enumerator(fso.Drives);
var s = "";
var name;
for (e.moveFirst(); !e.atEnd(); e.moveNext()) { // просмотр всех дисков компьютера
var x = e.item();
if (x.DriveType == 3) // сетевой диск?
name = x.ShareName;
else if (x.IsReady)
name = x.VolumeName;
else
name = "[Диск не готов]";
s += x.DriveLetter + ": " + name + "<br>";
}
return(s);
}
document.write(showDrives());
Объект
Enumerator не имеет свойств; его методы описаны ниже.
Методы объекта Enumerator
Метод |
Описание |
atEnd |
Проверяет, достигнут ли конец коллекции. |
item |
Возвращает текущий элемент коллекции. |
moveFirst |
Делает текущим первый элемент коллекции. |
moveNext |
Делает текущим следующий элемент коллекции. |
Синтаксис: объект.atEnd()
Результат: логическое значение
Метод
atEnd возвращает
true, если текущий элемент коллекции является последним в ней, и
false в противном случае. См. приведенный выше пример.
Синтаксис: объект.item()
Результат: объект
Метод
item возвращает текущий элемент коллекции. Если коллекция пуста или текущий элемент не определен, то возвращается значение
undefined. См. приведенный выше пример.
Синтаксис: объект.moveFirst()
Метод
moveFirst перемещает указатель на первый элемент коллекции. См. приведенный выше пример.
Синтаксис: объект.moveNext()
Метод
moveNext перемещает указатель на следующий элемент коллекции. См. приведенный выше пример.