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

Тут можно читать онлайн Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание - бесплатно ознакомительный отрывок. Жанр: comp-db, издательство Символ-Плюс, год 2012. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    JavaScript. Подробное руководство, 6-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Символ-Плюс
  • Год:
    2012
  • Город:
    СПб
  • ISBN:
    978-5-93286-215-5
  • Рейтинг:
    2.5/5. Голосов: 21
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

JavaScript. Подробное руководство, 6-е издание - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Дэвид Флэнаган
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

}

/*

* Удаляет из объекта о свойства, отсутствующие в объекте р.

* Возвращает о.

*/

function restricts, р) {

fоr(prop in о) { // Для всех свойств в о

if (!(prop in р)) delete о[prop]; // Удалить, если отсутствует в р

}

return о;

}

/*

* Удаляет из объекта о свойства, присутствующие в объекте р. Возвращает о.

*/

function subtracts, р) {

for(prop in р) { // Для всех свойств в р

delete о[ргор]; // Удалить из о (удаление несуществующих

// свойств можно выполнять без опаски)

}

return о;

}

/*

* Возвращает новый объект, содержащий свойства, присутствующие хотя бы в одном

* из объектов, о или р. Если оба объекта, о и р, имеют свойства с одним

* и тем же именем, используется значение свойства из объекта р.

*/

function union(o,p) { return extend(extend({},о), p); }

/*

* Возвращает новый объект, содержащий свойства, присутствующие сразу в обоих

* объектах, о или р. Результат чем-то напоминает пересечение о и р,

* но значения свойств объекта р отбрасываются */

function intersection(o, р) { return restrict(extend({}, о), р); }

/*

* Возвращает массив имен собственных перечислимых свойств объекта о.

*/

function keys(o) {

if (typeof о !== "object”) throw ТуреЕггогО; // Apr. должен быть объектом

var result = []; // Возвращаемый массив

for(var prop in о) { // Для всех перечислимых свойств

if (о.hasOwnProperty(prop)) // Если это собственное свойство,

result.push(prop); // добавить его в массив array.

}

return result; // Вернуть массив.

}

В дополнение к циклу for/in стандарт ECMAScript 5 определяет две функции, перечисляющие имена свойств. Первая из них, Object.keys(), возвращает массив имен собственных перечислимых свойств объекта. Она действует аналогично функции keys() из примера 6.2.

Вторая функция ECMAScript 5, выполняющая перечисление свойств, - Object.getOwnPropertyNames(). Она действует подобно функции Object.keys(), но возвращает имена всех собственных свойств указанного объекта, а не только перечислимые. В реализациях ECMAScript 3 отсутствует возможность реализовать подобные функции, потому что ECMAScript 3 не предусматривает возможность получения неперечислимых свойств объекта.

6.6. Методы чтения и записи свойств

Выше уже говорилось, что свойство объекта имеет имя, значение и набор атрибутов. В ECMAScript 5 [10] И в последних версиях реализации стандарта ECMAScript 3 в основных броузерах, кроме IE.

значение может замещаться одним или двумя методами, известными как методы чтения ( getter ) и записи ( setter ). Свойства, для которых определяются методы чтения и записи, иногда называют свойствами с методами доступа, чтобы отличать их от свойств с данными, представляющих простое значение.

Когда программа пытается получить значение свойства с методами доступа, интерпретатор вызывает метод чтения (без аргументов). Возвращаемое этим методом значение становится значением выражения обращения к свойству. Когда программа пытается записать значение в свойство, интерпретатор вызывает метод записи, передавая ему значение, находящее справа от оператора присваивания. Этот метод отвечает за «установку» значения свойства. Значение, возвращаемое методом записи, игнорируется.

В отличие от свойств с данными, свойства с методами доступа не имеют атрибута writable . Если свойство имеет оба метода, чтения и записи, оно доступно для чтения/записи. Если свойство имеет только метод чтения, оно доступно только для чтения. А если свойство имеет только метод записи, оно доступно только для записи (такое невозможно для свойств с данными) и попытки прочитать значение такого свойства всегда будут возвращать undefined .

Самый простой способ определить свойство с методами доступа заключается в использовании расширенного синтаксиса определения литералов объектов:

var о = {

// Обычное свойство с данными

data_prop: value,

// Свойство с методами доступа определяется как пара функций

get accessor_prop() { /* тело функции */ },

set accessor_prop(value) { /* тело функции */ }

};

Свойства с методами доступа определяются как одна или две функции, имена которых совпадают с именем свойства и с заменой ключевого слова function на ge t и/или set . Обратите внимание, что не требуется использовать двоеточие для отделения имени свойства от функции, управляющей доступом к свойству, но по-прежнему необходимо использовать запятую после тела функции, чтобы отделить метод от других методов или свойств с данными. Для примера рассмотрим следующий объект, представляющий Декартовы координаты точки на плоскости. Для представления координат X и Y в нем имеются обычные свойства с данными, а также свойства с методами доступа, позволяющие получить эквивалентные полярные координаты точки:

var р = {

// х и у - обычные свойства с данными, доступные для чтения/записи.

х: 1.0,

у: 1.0,

//r - доступное для чтения/записи свойство с двумя методами доступа.

// Не забывайте добавлять запятые после методов доступа,

get r() { return Math.sqrt(this.x*this.x + this.y*this.y); },

set r(newvalue) {

var oldvalue = Math.sqrt(this.x*this.x + this.y*this.y);

var ratio = newvalue/oldvalue;

this.x *= ratio;

this.у *= ratio;

}

// theta - доступное только для чтения свойство с единственным методом чтения,

get theta() { return Math.atan2(this.у, this.x); }

};

Обратите внимание на использование ключевого слова this в методах чтения и записи выше. Интерпретатор будет вызывать эти функции, как методы объекта, в котором они определены, т.е. в теле функции this будет ссылаться на объект точки. Благодаря этому метод чтения свойства r может ссылаться на свойства x и у, как this.x и this.у . Подробнее о методах и ключевом слове this рассказывается в разделе 8.2.2.

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

Интервал:

Закладка:

Сделать


Дэвид Флэнаган читать все книги автора по порядку

Дэвид Флэнаган - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге JavaScript. Подробное руководство, 6-е издание, автор: Дэвид Флэнаган. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x