пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Объектные литералы

42. Объектные литералы

Использование объектного литерала

Создание объекта с помощью объектного литерала, достаточно очевидно. Объектный литерал представляет из себя, заключенные в фигурные скобки, пары свойств и их значений, разделенные запятыми. В свою очередь каждое свойство отделено от его значения с помощью двоеточия. Имена свойств могут быть идентификаторами, строками или числами, а значения могут быть строками, числами, функциями или другими объектами. Имена свойств преобразуются в строки, это значит что строка "25" и число 25, указывают на одно и тоже свойство, и при использовании в одном объекте будут переназначать друг друга.

Пример:

{

    property: value,

    property: value

}

Создание объектов

Для демонстрации этого метода, давайте создадим простой объект с тремя свойствами, два из них будут хранить числа, тогда как третье будет анонимной функцией (функцией без имени):

var AnimationManager = {

    framesPerSecond: 30,

    totalLength: 15,

    startAnimation: function() { /* code */ }

}

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

var AnimationManager = new Object();

AnimationManager.framesPerSecond = 30;

AnimationManager.totalLength = 15;

AnimationManager.startAnimation = function () { /* code */ };

Доступ к свойствам объекта

Мы создали объект AnimationManager и теперь можем получить доступ к его свойствам с помощью точки или квадратных скобок, следующие две строки кода дают один и тот же результат:

alert(AnimationManager.framesPerSecond); // object.property

alert(AnimationManager['framesPerSecond']); // object['property']

Чаще для доступа к свойствам мы будем использовать точку, но возможность доступа к объекту как к хеш таблице может быть полезна, если нужен гибкий доступ к нескольким похожим свойствам. К примеру, нам может понадобиться функция, устанавливающая свойства framesPerSecond и totalLength, используя только точку, мы будем вынуждены обратиться к такому коду:

function changeValue(property, value) {

    if (property == "framesPerSecond") {

        AnimationManager.framesPerSecond = value;

    } else {

        AnimationManager.totalLength = value;

    }

}

А, зная о том, что к свойствам можно обращаться с помощью квадратных скобок, мы получим более компактный код:

function changeValue(property, value) {

    AnimationManager[property] = value;

}

Добавляем свойства или методы

В процессе работы с объектом мы можем, создать новые свойства или методы в любой момент. Создать новое свойство и присвоить ему значение, так же просто, как и присвоить значение существующему:

AnimationManager.stopAnimation = function() { }

AnimationManager.defaultTween = "sinoidal";

 


22.06.2017; 20:07
хиты: 199
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь