JavaScript — Обзор объектов

JavaScript является объектно-ориентированным языком программирования (ООП). Язык программирования можно назвать объектно-ориентированным, если он обеспечивает четыре основные возможности для разработчиков:
- Инкапсуляция — способность хранить соответствующую информацию, будь то данные или методы, вместе в объекте.
- Агрегация — способность хранить один объект внутри другого объекта.
- Наследование — способность класса полагаться на другой класс (или число классов) для некоторых из его свойств и методов.
- Полиморфизм — способность написать одну функцию или метод, которая работает в различных направлениях.
Объекты состоят из атрибутов. Если атрибут содержит функцию, она считается методом объекта, в противном случае атрибут считается собственностью.
Свойства объекта
Свойства объекта могут быть любыми из трех примитивных типов данных, или любой из абстрактных типов данных, как любой другой объект. Свойства объекта, как правило, переменные, которые используют методы внутри объекта, но также могут быть глобально видимыми переменными, которые используются по всей странице.
Синтаксис для добавления свойства к объекту:
objectName.objectProperty = propertyValue;
Например, Следующий код получает название документа с помощью свойства «title» объекта document.
var str = document.title;
Методы объектов
Методы являются функциями, которые позволяют объекту делать что — то или дать что — то сделать для него. Существует небольшая разница между функцией и методом — функция представляет собой автономный блок операторов и способ прикрепляется к объекту и может ссылаться на него через ключевое слово this.
Способы могут быть использованы для отображения всего содержимого объекта на экран, для выполнения сложных математических операций на группу локальных свойств и параметров.
Например — Ниже приводится простой пример, который покажет, как использовать метод write() объекта document, которая добавит возможность писать содержимое в документе.
document.write("Это тест");
Объекты определенные пользователем
Все определяемые пользователем объекты и встроенные объекты являются потомками объекта под названием Object.
Оператор new
Оператор new используется для создания экземпляра объекта. Чтобы создать объект, указывается оператор new после метода конструктора.
В следующем примере методами являются конструктор Object(), Array(), и Date(), Эти конструкторы встроенных функций JavaScript.
var employee = new Object(); var books = new Array("C++", "Perl", "Java"); var day = new Date("Ноябрь 08, 2017");
Конструктор Object()
Конструктор является функцией, которая создает и инициализирует объект. JavaScript предоставляет специальную функцию конструктора под названием Object() для создания объекта. Возвращаемое значение конструктора Object() присваивается переменной.
Переменная содержит ссылку на новый объект. Свойства, присвоенные объекту не являются переменными и не определены с ключевым словом var.
Пример 1
Попробуйте следующий пример; он показывает, как создать объект.
<html> <head> <title>Объекты определяемые пользователем</title> <script type="text/javascript"> var book = new Object(); // Создать объект book.subject = "Perl"; // Присвоить свойства объекту book.author = "Mohtashim"; </script> </head> <body> <script type="text/javascript"> document.write("Название книги : " + book.subject + "<br>"); document.write("Автор книги : " + book.author + "<br>"); </script> </body> </html>
Вывод
Название книги : Perl Автор книги : Mohtashim
Пример 2
В этом примере показано, как создать объект с определенной пользователем функции. Ключевое слово this используется для обозначения объекта, который был принят в функцию.
<html> <head> <title>Объекты определяемые пользователем</title> <script type="text/javascript"> function book(title, author){ this.title = title; this.author = author; } </script> </head> <body> <script type="text/javascript"> var myBook = new book("Perl", "Mohtashim"); document.write("Название книги : " + myBook.title + "<br>"); document.write("Автор книги : " + myBook.author + "<br>"); </script> </body> </html>
Вывод
Название книги : Perl Автор книги : Mohtashim
Определение методов для объекта
В предыдущих примерах показано, как конструктор создает объект и присваивает свойства. Но мы должны завершить определение объекта путем присвоения методов к нему.
Пример
Попробуйте следующий пример. Он показывает, как добавить функцию к объекту.
<html> <head> <title>Объекты определяемые пользователем</title> <script type="text/javascript"> // Определите функцию, которая будет работать как метод function addPrice(amount){ this.price = amount; } function book(title, author){ this.title = title; this.author = author; this.addPrice = addPrice; // Назначьте этот метод свойством. } </script> </head> <body> <script type="text/javascript"> var myBook = new book("Perl", "Mohtashim"); myBook.addPrice(2000); document.write("Название книги : " + myBook.title + "<br>"); document.write("Автор книги : " + myBook.author + "<br>"); document.write("Прайс-лист : " + myBook.price + "<br>"); </script> </body> </html>
Вывод
Название книги : Perl Автор книги : Mohtashim Прайс-лист : 2000
Ключевое слово ‘with’
Ключевое слово ‘with’ используется как своего рода стенография для ссылок свойств или методов объекта.
Объект, заданный в качестве аргумента ‘with’ становится объектом по умолчанию для следующего блока. Свойства и методы объекта могут быть использованы без указания объекта.
Синтаксис
Синтаксис с объектом выглядит следующим образом:
with (object){ свойства, используемые без имени объекта и точки }
Пример
Попробуйте следующий пример.
<html> <head> <title>Объекты определяемые пользователем</title> <script type="text/javascript"> // Определите функцию, которая будет работать как метод function addPrice(amount){ with(this){ price = amount; } } function book(title, author){ this.title = title; this.author = author; this.price = 0; this.addPrice = addPrice; // Назначьте этот метод свойством. } </script> </head> <body> <script type="text/javascript"> var myBook = new book("Perl", "Mohtashim"); myBook.addPrice(2000); document.write("Название книги : " + myBook.title + "<br>"); document.write("Автор книги : " + myBook.author + "<br>"); document.write("Прайс-лист : " + myBook.price + "<br>"); </script> </body> </html>
Вывод
Название книги : Perl Автор книги : Mohtashim Прайс-лист : 2000
Собственные объекты JavaScript
JavaScript имеет несколько встроенных или родные объекты. Эти объекты доступны в любом месте в вашей программе и будут работать так же, как в любом браузере, который работает в любой операционной системе.
Здесь представлен список всех важных собственных объектов в JavaScript:
- Объект Number в JavaScript
- Объект Boolean в JavaScript
- Объект String в JavaScript
- Объект Array в JavaScript
- Объект Date в JavaScript
- Объект Math в JavaScript
- Объект RegExp в JavaScript