Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

}

}

);

/*

* AbstractEnumerableSet - абстрактный подкласс класса AbstractSet.

* Определяет абстрактные методы size и foreach и реализует конкретные

* методы isEmptyO. toArrayO, to[Locale]String и equals.

* Подклассы, реализующие методы contains, size и foreach,

* получают эти пять конкретных методов даром.

*/

var AbstractEnumerableSet = AbstractSet.extend(

function {

throw new Error("Нельзя создать экземпляр абстрактного класса");

},

{

size: abstractmethod,

fоreach: abstractmethod,

isEmpty: function { return this.size == 0; },

toString: function {

var s = і = 0;

this.foreach(function(v) {

if (i++ > 0) s += ", ";

s += v;

});

return s +

},

toLocaleString : function {

var s = "{", і = 0;

this.foreach(function(v) {

if (i++ > 0) s += ", "

if (v == null) s += v; // null и undefined

else s += v. toLocaleString; // все остальные

});

return s +

},

toArray: function {

var a = [];

this.foreach(function(v) { a.push(v); });

return a;

},

equals: function(that) {

if (!(that instanceof AbstractEnumerableSet)) return false;

// Если множество that имеет другой размер, множества не равны

if (this.size ! = that.sizeO) return false;

// Проверить наличие каждого элемента this в множестве that,

try {

this.foreach(function(v){

if (!that.contains(v)) throw false;}

);

return true; // Все элементы одинаковые: множества равны.

} catch (х) {

if (х === false) return false; // Множества не равны

throw х; // Повторно возбудить любое иное возникшее исключение.

}

}

});

/*

* SingletonSet - конкретный подкласс класса AbstractEnumerableSet.

* Множество из единственного элемента, доступное только для чтения.

*/

var SingletonSet = AbstractEnumerableSet.extend(

function SingletonSet(member) { this.member = member; },

{

contains: function(x) { return x === this.member; },

size: function { return 1; },

foreach: function(f,ctx) { f.call(ctx, this.member); }

}

);

/*

* AbstractWritableSet - абстрактный подкласс класса AbstractEnumerableSet.

* Определяет абстрактные методы add и remove и реализует конкретные

* методы union, intersection и difference.

*/

var AbstractWritableSet = AbstractEnumerableSet.extend(

function {

Поделиться:
Популярные книги

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Бояръ-Аниме. Газлайтер. Том 35

Володин Григорий Григорьевич
35. История Телепата
Фантастика:
аниме
боевая фантастика
фэнтези
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 35

Лекарь Империи 4

Карелин Сергей Витальевич
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 4

На границе империй. Том 10. Часть 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3

Вперед в прошлое 8

Ратманов Денис
8. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 8

Второгодка. Книга 5. Презренный металл

Ромов Дмитрий
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Второгодка. Книга 5. Презренный металл

Тринадцатый V

NikL
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый V

Идеальный мир для Лекаря 26

Сапфир Олег
26. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 26

Адептка второго плана

Мамаева Надежда Николаевна
Попасть в историю
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Адептка второго плана

Двойник короля 17

Скабер Артемий
17. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 17

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Травник

Назимов Константин Геннадьевич
1. Травник
Фантастика:
фэнтези
5.00
рейтинг книги
Травник

Последний Паладин. Том 3

Саваровский Роман
3. Путь Паладина
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 3

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII