Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

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 {

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

},

{

add: abstractmethod,

remove: abstractmethod,

union: function(that) {

var self = this;

that.foreach(function(v) { self.add(v); });

return this;

},

intersection: function(that) {

var self = this;

this.foreach(function(v){

if(!that.contains(v)) self.remove(v);

});

return this;

},

  • Читать дальше
  • 1
  • ...
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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