JavaScript - Visão geral dos objetos

JavaScript é uma linguagem de Programação Orientada a Objetos (OOP). Uma linguagem de programação pode ser chamada de orientada a objetos se fornecer quatro recursos básicos para desenvolvedores -

  • Encapsulation - a capacidade de armazenar informações relacionadas, sejam dados ou métodos, juntas em um objeto.

  • Aggregation - a capacidade de armazenar um objeto dentro de outro objeto.

  • Inheritance - a capacidade de uma classe de confiar em outra classe (ou número de classes) para algumas de suas propriedades e métodos.

  • Polymorphism - a capacidade de escrever uma função ou método que funcione de várias maneiras diferentes.

Os objetos são compostos de atributos. Se um atributo contém uma função, ele é considerado um método do objeto, caso contrário, o atributo é considerado uma propriedade.

Propriedades do objeto

As propriedades do objeto podem ser qualquer um dos três tipos de dados primitivos ou qualquer um dos tipos de dados abstratos, como outro objeto. As propriedades do objeto geralmente são variáveis ​​usadas internamente nos métodos do objeto, mas também podem ser variáveis ​​globalmente visíveis que são usadas em toda a página.

A sintaxe para adicionar uma propriedade a um objeto é -

objectName.objectProperty = propertyValue;

For example - O código a seguir obtém o título do documento usando o "title" propriedade do document objeto.

var str = document.title;

Métodos de Objeto

Métodos são as funções que permitem que o objeto faça algo ou que algo seja feito para ele. Há uma pequena diferença entre uma função e um método - em uma função é uma unidade autônoma de instruções e um método é anexado a um objeto e pode ser referenciado pelothis palavra-chave.

Os métodos são úteis para tudo, desde a exibição do conteúdo do objeto na tela até a execução de operações matemáticas complexas em um grupo de propriedades e parâmetros locais.

For example - A seguir está um exemplo simples para mostrar como usar o write() método do objeto de documento para escrever qualquer conteúdo no documento.

document.write("This is test");

Objetos Definidos pelo Usuário

Todos os objetos definidos pelo usuário e objetos embutidos são descendentes de um objeto chamado Object.

O novo operador

o newoperador é usado para criar uma instância de um objeto. Para criar um objeto, onew operador é seguido pelo método do construtor.

No exemplo a seguir, os métodos do construtor são Object (), Array () e Date (). Esses construtores são funções JavaScript integradas.

var employee = new Object();
var books = new Array("C++", "Perl", "Java");
var day = new Date("August 15, 1947");

O construtor Object ()

Um construtor é uma função que cria e inicializa um objeto. JavaScript fornece uma função construtora especial chamadaObject()para construir o objeto. O valor de retorno doObject() construtor é atribuído a uma variável.

A variável contém uma referência ao novo objeto. As propriedades atribuídas ao objeto não são variáveis ​​e não são definidas com ovar palavra-chave.

Exemplo 1

Experimente o seguinte exemplo; ele demonstra como criar um objeto.

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

Resultado

Book name is : Perl 
Book author is : Mohtashim

Exemplo 2

Este exemplo demonstra como criar um objeto com uma função definida pelo usuário. Aquithis palavra-chave é usada para se referir ao objeto que foi passado para uma função.

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

Resultado

Book title is : Perl 
Book author is : Mohtashim

Definindo métodos para um objeto

Os exemplos anteriores demonstram como o construtor cria o objeto e atribui propriedades. Mas precisamos completar a definição de um objeto atribuindo métodos a ele.

Exemplo

Experimente o seguinte exemplo; mostra como adicionar uma função junto com um objeto.

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

Resultado

Book title is : Perl 
Book author is : Mohtashim 
Book price is : 100

A palavra-chave 'com'

o ‘with’ palavra-chave é usada como uma espécie de abreviação para fazer referência às propriedades ou métodos de um objeto.

O objeto especificado como um argumento para withtorna-se o objeto padrão durante o bloco que se segue. As propriedades e métodos do objeto podem ser usados ​​sem nomear o objeto.

Sintaxe

A sintaxe para com objeto é a seguinte -

with (object) {
   properties used without the object name and dot
}

Exemplo

Experimente o seguinte exemplo.

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

Resultado

Book title is : Perl 
Book author is : Mohtashim 
Book price is : 100

Objetos nativos de JavaScript

JavaScript possui vários objetos nativos ou integrados. Esses objetos podem ser acessados ​​em qualquer lugar do programa e funcionarão da mesma forma em qualquer navegador em execução em qualquer sistema operacional.

Aqui está a lista de todos os objetos nativos de JavaScript importantes -