JavaScript является языком объектно-ориентированного программирования (ООП). Язык программирования можно назвать объектно-ориентированным, если он предоставляет разработчикам четыре основных возможности:
-
Инкапсуляция — возможность хранить связанную информацию, будь то данные или методы, вместе в объекте.
-
Агрегация — возможность хранить один объект внутри другого объекта.
-
Наследование — способность класса полагаться на другой класс (или число классов) для некоторых его свойств и методов.
-
Полиморфизм — возможность написать одну функцию или метод, который работает различными способами.
Инкапсуляция — возможность хранить связанную информацию, будь то данные или методы, вместе в объекте.
Агрегация — возможность хранить один объект внутри другого объекта.
Наследование — способность класса полагаться на другой класс (или число классов) для некоторых его свойств и методов.
Полиморфизм — возможность написать одну функцию или метод, который работает различными способами.
Объекты состоят из атрибутов. Если атрибут содержит функцию, он считается методом объекта, в противном случае атрибут считается свойством.
Свойства объекта
Свойства объекта могут быть любым из трех примитивных типов данных или любым из абстрактных типов данных, например другим объектом. Свойства объекта обычно являются переменными, которые используются внутри методов объекта, но также могут быть глобально видимыми переменными, которые используются по всей странице.
Синтаксис для добавления свойства к объекту —
objectName.objectProperty = propertyValue;
Например : следующий код получает заголовок документа, используя свойство «title» объекта документа .
var str = document.title;
Методы объекта
Методы — это функции, которые позволяют объекту что-то делать или что-то делать с ним. Существует небольшая разница между функцией и методом — у функции есть отдельная единица операторов, а метод присоединяется к объекту и может ссылаться на это ключевое слово this .
Методы полезны для всего: от отображения содержимого объекта на экране до выполнения сложных математических операций над группой локальных свойств и параметров.
Например — Ниже приведен простой пример, показывающий, как использовать метод write () объекта документа для записи любого содержимого в документе.
document.write("This is test");
Пользовательские объекты
Все определяемые пользователем объекты и встроенные объекты являются потомками объекта с именем Object .
Новый оператор
Оператор new используется для создания экземпляра объекта. Для создания объекта за новым оператором следует метод конструктора.
В следующем примере методами конструктора являются Object (), Array () и Date (). Эти конструкторы являются встроенными функциями JavaScript.
var employee = new Object(); var books = new Array("C++", "Perl", "Java"); var day = new Date("August 15, 1947");
Конструктор Object ()
Конструктор — это функция, которая создает и инициализирует объект. JavaScript предоставляет специальную функцию конструктора Object () для создания объекта. Возвращаемое значение конструктора Object () присваивается переменной.
Переменная содержит ссылку на новый объект. Свойства, назначенные объекту, не являются переменными и не определяются с помощью ключевого слова var .
Пример 1
Попробуйте следующий пример; это демонстрирует, как создать Объект.
<html> <head> <title>User-defined objects</title> <script type = "text/javascript"> var book = new Object(); // Create the object book.subject = "Perl"; // Assign properties to the object book.author = "Mohtashim"; </script> </head> <body> <script type = "text/javascript"> document.write("Book name is : " + book.subject + "<br>"); document.write("Book author is : " + book.author + "<br>"); </script> </body> </html>
Выход
Book name is : Perl Book author is : Mohtashim
Пример 2
В этом примере показано, как создать объект с помощью пользовательской функции. Здесь это ключевое слово используется для ссылки на объект, который был передан функции.
<html> <head> <title>User-defined objects</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("Book title is : " + myBook.title + "<br>"); document.write("Book author is : " + myBook.author + "<br>"); </script> </body> </html>
Выход
Book title is : Perl Book author is : Mohtashim
Определение методов для объекта
Предыдущие примеры демонстрируют, как конструктор создает объект и назначает свойства. Но нам нужно завершить определение объекта, назначив ему методы.
пример
Попробуйте следующий пример; он показывает, как добавить функцию вместе с объектом.
<html> <head> <title>User-defined objects</title> <script type = "text/javascript"> // Define a function which will work as a method function addPrice(amount) { this.price = amount; } function book(title, author) { this.title = title; this.author = author; this.addPrice = addPrice; // Assign that method as property. } </script> </head> <body> <script type = "text/javascript"> var myBook = new book("Perl", "Mohtashim"); myBook.addPrice(100); document.write("Book title is : " + myBook.title + "<br>"); document.write("Book author is : " + myBook.author + "<br>"); document.write("Book price is : " + myBook.price + "<br>"); </script> </body> </html>
Выход
Book title is : Perl Book author is : Mohtashim Book price is : 100
Ключевое слово «с»
Ключевое слово with используется как своего рода сокращение для ссылки на свойства или методы объекта.
Объект, указанный в качестве аргумента для with, становится объектом по умолчанию на весь последующий блок. Свойства и методы для объекта могут использоваться без именования объекта.
Синтаксис
Синтаксис для с объектом выглядит следующим образом —
with (object) { properties used without the object name and dot }
пример
Попробуйте следующий пример.
<html> <head> <title>User-defined objects</title> <script type = "text/javascript"> // Define a function which will work as a method function addPrice(amount) { with(this) { price = amount; } } function book(title, author) { this.title = title; this.author = author; this.price = 0; this.addPrice = addPrice; // Assign that method as property. } </script> </head> <body> <script type = "text/javascript"> var myBook = new book("Perl", "Mohtashim"); myBook.addPrice(100); document.write("Book title is : " + myBook.title + "<br>"); document.write("Book author is : " + myBook.author + "<br>"); document.write("Book price is : " + myBook.price + "<br>"); </script> </body> </html>
Выход
Book title is : Perl Book author is : Mohtashim Book price is : 100
Собственные объекты JavaScript
JavaScript имеет несколько встроенных или собственных объектов. Эти объекты доступны в любом месте вашей программы и будут работать одинаково в любом браузере, работающем в любой операционной системе.
Вот список всех важных нативных объектов JavaScript —