JavaScript является объектно-ориентированным языком программирования (ООП). Язык программирования можно назвать объектно-ориентированным, если он обеспечивает четыре основные возможности для разработчиков:
Объекты состоят из атрибутов. Если атрибут содержит функцию, она считается методом объекта, в противном случае атрибут считается собственностью.
Свойства объекта могут быть любыми из трех примитивных типов данных, или любой из абстрактных типов данных, как любой другой объект. Свойства объекта, как правило, переменные, которые используют методы внутри объекта, но также могут быть глобально видимыми переменными, которые используются по всей странице.
Синтаксис для добавления свойства к объекту:
objectName.objectProperty = propertyValue;
Например, Следующий код получает название документа с помощью свойства “title” объекта document.
var str = document.title;
Методы являются функциями, которые позволяют объекту делать что – то или дать что – то сделать для него. Существует небольшая разница между функцией и методом – функция представляет собой автономный блок операторов и способ прикрепляется к объекту и может ссылаться на него через ключевое слово this.
Способы могут быть использованы для отображения всего содержимого объекта на экран, для выполнения сложных математических операций на группу локальных свойств и параметров.
Например – Ниже приводится простой пример, который покажет, как использовать метод write() объекта document, которая добавит возможность писать содержимое в документе.
document.write("Это тест");
Все определяемые пользователем объекты и встроенные объекты являются потомками объекта под названием Object.
Оператор new используется для создания экземпляра объекта. Чтобы создать объект, указывается оператор new после метода конструктора.
В следующем примере методами являются конструктор Object(), Array(), и Date(), Эти конструкторы встроенных функций JavaScript.
var employee = new Object(); var books = new Array("C++", "Perl", "Java"); var day = new Date("Ноябрь 08, 2017");
Конструктор является функцией, которая создает и инициализирует объект. JavaScript предоставляет специальную функцию конструктора под названием Object() для создания объекта. Возвращаемое значение конструктора Object() присваивается переменной.
Переменная содержит ссылку на новый объект. Свойства, присвоенные объекту не являются переменными и не определены с ключевым словом var.
Попробуйте следующий пример; он показывает, как создать объект.
<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
В этом примере показано, как создать объект с определенной пользователем функции. Ключевое слово 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 (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: