Учебники

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

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

Попробуйте следующий пример; это демонстрирует, как создать Объект.

Live Demo

<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

В этом примере показано, как создать объект с помощью пользовательской функции. Здесь это ключевое слово используется для ссылки на объект, который был передан функции.

Live Demo

<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

Определение методов для объекта

Предыдущие примеры демонстрируют, как конструктор создает объект и назначает свойства. Но нам нужно завершить определение объекта, назначив ему методы.

пример

Попробуйте следующий пример; он показывает, как добавить функцию вместе с объектом.

Live Demo

<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
}

пример

Попробуйте следующий пример.

Live Demo

<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 —

JavaScript Number Object

JavaScript логический объект

JavaScript String Object

JavaScript Array Object

JavaScript Date Object

JavaScript Math Object

JavaScript RegExp Object