Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
икт 90.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
474.21 Кб
Скачать

49. Oбъектно-ориентированное программирование в JavaScript,реализация инкапсуляция,наследование,полиморфизм Объектно-ориентированное программирование в JavaScript

Пространство имён — это контейнер, который позволяет разработчикам собрать функциональность под уникальным именем приложения. Пространство имён в JavaScript — это объект, содержащий методы, свойства и другие объекты.

Важно отметить, что на уровне языка в JavaScript нет разницы между пространством имён и любым другим объектом. Это отличает JS от множества других объектно-ориентированных языков и может стать причиной путаницы у начинающих JS программистов.

Давайте создадим глобальный объект MYAPP:

// Глобальное пространство имён

var MYAPP = MYAPP || {};

Во фрагменте кода выше мы сначала проверяем определён ли объект MYAPP (в текущем файле или другом файле). Если да, то используем существующий глобальный объект MYAPP, иначе создаём пустой объект MYAPP, в котором мы инкапсулируем все методы, функции, переменные и объекты.

Также мы можем создать подпространство имён:

// Подпространство имён

MYAPP.event = {};

Инкапсуляция

В примере выше классу Student нет необходимости знать о реализации метода walk() класса Person, но он может его использовать; Класс Student не должен явно определять этот метод, пока мы не хотим его изменить. Это называется инкапсуляция, благодаря чему каждый класс собирает данные и методы в одном блоке.

Сокрытие информации распространённая особенность, часто реализуемая в других языках программирования как приватные и защищённые методы/свойства. Однако в JavaScript можно лишь имитировать нечто подобное, это не является необходимым требованием объектно-ориентированного программирования.

Наследование

Наследование — это способ создать класс как специализированную версию одного или нескольких классов (JavaScript поддерживает только одиночное наследование). Специализированный класс, как правило, называют потомком, а другой класс родителем. В JavaScript наследование осуществляется присвоением экземпляра класса родителя классу потомку. В современных браузерах вы можете реализовать наследование с помощью Object.create.

Полиморфизм

Так как все методы и свойства определяются внутри свойства prototype, различные классы могут определять методы с одинаковыми именами; методы находятся в области видимости класса в котором они определены, пока два класса не имеют связи родитель-потомок (например, один наследуется от другого в цепочке наследований)

50. Oсновные объекты object,boolean,number,math,date Объект Object

Все объекты языка JavaScript являются наследниками объекта Object. Следовательно, все свойства и методы этого объекта имеются и у любого другого объекта JavaScript.

Для объекта Object определено всего 2 свойства – constructor и prototype. Свойство constructor определяет функцию, создающую прототип объекта – именно всю функцию целиком, а не только ее название. Иначе говоря, рассмотрим вариант, когда определен некоторый объект test и создан экземпляр этого объекта tmp:

function test(version) {

this.version = version; }

tmp = new test(1);

В таком случае, воспользовавшись свойством constructor, можно увидеть исходный код объекта.