русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Конструкторы


Дата добавления: 2015-07-09; просмотров: 510; Нарушение авторских прав


 

В главе 7 демонстрировался порядок создания новых пустых объектов как с по_ мощью литерала {}, так и с помощью следующего выражения:

 

new Object()

 

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


 

1 Полноценную поддержку классов планируется реализовать в JavaScript 2.0.


 

166 Глава 9. Классы, конструкторы и прототипы

 

var array = new Array(10); var today = new Date( );

 

За оператором new должно быть указано имя функции_конструктора. Оператор создает новый пустой объект без каких_либо свойств, а затем вызывает функ_ цию, передавая ей только что созданный объект в виде значения ключевого слова this. Функция, применяемая совместно с оператором new, называется функцией' конструктором, или просто конструктором. Главная задача конструктора за_ключается в инициализации вновь созданного объекта – установке всех его свойств, которые необходимо инициализировать до того, как объект сможет ис_ пользоваться программой. Чтобы определить собственный конструктор, доста_ точно написать функцию, добавляющую новые свойства к объекту, на который ссылается ключевое слово this. В следующем фрагменте приводится определе_ ние конструктора, с помощью которого затем создаются два новых объекта:

// Определяем конструктор.

 

// Обратите внимание, как инициализируется объект с помощью "this". function Rectangle(w, h) {

 

this.width = w; this.height = h;

 

}

// Вызываем конструктор для создания двух объектов Rectangle. Мы передаем ширину и высоту

 

// конструктору, чтобы можно было правильно проинициализировать оба новых объекта.

var rect1 = new Rectangle(2, 4); // rect1 = { width:2, height:4 };  
var rect2 = new Rectangle(8.5, 11); // rect2 = { width:8.5, height:11 };

 



Обратите внимание на то, как конструктор использует свои аргументы для ини_ циализации свойств объекта, на который ссылается ключевое слово this. Здесь мы определили класс объектов, просто создав соответствующую функцию_кон_ структор – все объекты, созданные с помощью конструктора Rectangle(), гаран_ тированно будут иметь инициализированные свойства width и height. Это означа_ ет, что учитывая данное обстоятельство, можно организовать единообразную ра_ боту со всеми объектами класса Rectangle. Поскольку каждый конструктор опре_ деляет отдельный класс объектов, стилистически очень важно присвоить такое имя функции_конструктору, которое будет явно отражать класс объектов, созда_ ваемых с ее помощью. Например, строка new Rectangle(1, 2), создающая объект прямоугольника, выглядит гораздо более понятно, нежели new init_rect(1, 2).

 

Обычно функции_конструкторы ничего не возвращают, они лишь инициализи_ руют объект, полученный в качестве значения ключевого слова this. Однако для конструкторов допускается возможность возвращать объект, в этом случае возвра_ щаемый объект становится значением выражения new. При этом объект, передан_ ный конструктору в виде значения ключевого слова this, просто уничтожается.

 



<== предыдущая лекция | следующая лекция ==>
Классы, конструкторы и прототипы | Прототипы и наследование


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.696 сек.