Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание

Здесь есть возможность читать онлайн «Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб, Год выпуска: 2012, ISBN: 2012, Издательство: Символ-Плюс, Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

JavaScript. Подробное руководство, 6-е издание: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «JavaScript. Подробное руководство, 6-е издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

C момента выхода первого издания в 1996 году книга "JavaScript: Подробное руководство" превратилась в библию программистов на JavaScript. За эти годы было издано более 500000 экземпляров, и веб-разработчики по-прежнему с восторгом отзываются о ней.
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.

JavaScript. Подробное руководство, 6-е издание — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «JavaScript. Подробное руководство, 6-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

enumeration.foreach = function(f,с) {

for(var і = 0; і < this.values.length; i++) f.call(c,this.values[i]);

};

// Вернуть конструктор, идентифицирующий новый тип

return enumeration;

}

Типичным начальным примером использования типов-перечислений может служить реализация перечисления для представления колоды игральных карт. Пример 9.8 использует функцию enumeration) именно для этого, а также определяет классы для представления карт и колод карт. [16] Этот пример основан на примере для языка Java, написанном Джошуа Блохом (Joshua Bloch) и доступном по адресу: http://jcp.org/aboutJava/communityprocess/jsr/tiger/enum.html .)

Пример 9.8. Представление игральных карт в виде типов-перечислений

// Определение класса для представления игральной карты

function Card(suit, rank) {

this.suit = suit; // Каждая карта имеет масть

this.rank = rank; // и значение

}

// Следующие типы-перечисления определяют возможные масти и значения карт

Card.Suit = enumeration({Clubs: 1, Diamonds: 2, Hearts:3, Spades:4});

Card.Rank = enumeration({Two: 2, Three: 3, Four: 4, Five: 5, Six: 6,

Seven: 7, Eight: 8, Nine: 9, Ten: 10,

Jack: 11, Queen: 12, King: 13, Ace: 14});

// Определение текстового представления карты

Card.prototype.toString = function() {

return this. rank.toString() + " " + this.suit.toString();

};

// Сравнивает значения двух карт в соответствии с правилами игры в покер

Card.prototype.compareTo = function(that){

if (this.rank < that.rank) return -1;

if (this.rank > that.rank) return 1;

return 0;

};

// Функция упорядочения карт в соответствии с правилами игры в покер

Card.orderByRank = function(a,b) { return a.compareTo(b); };

// Функция упорядочения карт в соответствии с правилами игры в бридж

Card.orderBySuit = function(a,b) {

if (a.suit < b.suit) return -1;

if (a.suit > b.suit) return 1;

if (a.rank < b.rank) return -1;

if (a.rank > b.rank) return 1;

return 0;

}:

// Определение класса представления стандартной колоды карт

function Deck() {

var cards = this.cards = []; // Колода - просто массив карт

Card.Suit.foreach(function(s) { // Инициализировать массив

Card.Rank.foreach(function(r) {

cards.push(new Card(s,r));

})

});

}

// Метод перемешивания: тасует колоду карт и возвращает ее

Deck.prototype.shuffle = function() {

// Для каждого элемента массива: поменять местами

// со случайно выбранным элементом ниже

var deck = this.cards, len = deck.length;

for(var і = len-1; і > 0; і--) {

var r = Math.floor(Math.random()*(i+1)), temp; // Случайное число

temp = deck[i], deck[i] = deck[r], deck[r] = temp; // Поменять

}

return this;

}

// Метод раздачи: возвращает массив карт

Deck.prototype.deal = function(n) {

if (this.cards.length < n) throw "Карт для выдачи не хватает";

return this.cards.splice(this.cards.length-n, n);

// Создает новую колоду карт, тасует ее и раздает как в игре в бридж

var deck = (new Deck()).shuffle();

var hand = deck.deal(13).sort(Card.orderBySuit);

9.6.3. Стандартные методы преобразований

В разделах 3.8.3 и 6.10 описываются важные методы, используемые для преобразования типа объектов, часть из которых автоматически вызывается интерпретатором JavaScript по мере необходимости. Вам не обязательно определять эти методы в каждом своем классе, но они играют важную роль, и если вы отказываетесь от их реализации в своих классах, это должен быть осознанный выбор, а не простая оплошность.

Первым и наиболее важным является метод toString() . Назначение этого метода в том, чтобы возвращать строковое представление объекта. Интерпретатор JavaScript автоматически вызывает этот метод, когда объект используется там, где ожидается строка - в качестве имени свойства, например, или с оператором + , выполняющим конкатенацию строк. Если отказаться от реализации этого метода, ваш класс унаследует от Object.prototype реализацию по умолчанию и будет преобразовываться в довольно бесполезную строку «[object Object]». Метод toString() может возвращать более удобочитаемую строку, подходящую для отображения на экране перед конечным пользователем вашего приложения. Однако даже если в этом нет необходимости, часто бывает полезно определить свой метод toString(), чтобы упростить отладку. Классы Range и Complex , представленные в примерах 9.2 и 9.3, имеют собственные реализации метода toString(), как и типы-перечисления, реализация которых приводится в примере 9.7. Ниже мы определим метод, toString() для класса Set из примера 9.6.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «JavaScript. Подробное руководство, 6-е издание»

Представляем Вашему вниманию похожие книги на «JavaScript. Подробное руководство, 6-е издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «JavaScript. Подробное руководство, 6-е издание»

Обсуждение, отзывы о книге «JavaScript. Подробное руководство, 6-е издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x