JavaScript - Panoramica degli oggetti

JavaScript è un linguaggio OOP (Object Oriented Programming). Un linguaggio di programmazione può essere definito orientato agli oggetti se fornisce quattro funzionalità di base agli sviluppatori:

  • Encapsulation - la capacità di memorizzare le informazioni correlate, dati o metodi, insieme in un oggetto.

  • Aggregation - la capacità di memorizzare un oggetto all'interno di un altro oggetto.

  • Inheritance - la capacità di una classe di fare affidamento su un'altra classe (o numero di classi) per alcune delle sue proprietà e metodi.

  • Polymorphism - la capacità di scrivere una funzione o un metodo che funziona in una varietà di modi diversi.

Gli oggetti sono composti da attributi. Se un attributo contiene una funzione, è considerato un metodo dell'oggetto, altrimenti l'attributo è considerato una proprietà.

Proprietà dell'oggetto

Le proprietà degli oggetti possono essere uno qualsiasi dei tre tipi di dati primitivi o uno qualsiasi dei tipi di dati astratti, come un altro oggetto. Le proprietà degli oggetti sono generalmente variabili che vengono utilizzate internamente nei metodi dell'oggetto, ma possono anche essere variabili visibili a livello globale utilizzate in tutta la pagina.

La sintassi per aggiungere una proprietà a un oggetto è:

objectName.objectProperty = propertyValue;

For example - Il codice seguente ottiene il titolo del documento utilizzando l'estensione "title" proprietà del document oggetto.

var str = document.title;

Metodi oggetto

I metodi sono le funzioni che consentono all'oggetto di fare qualcosa o che gli venga fatto qualcosa. C'è una piccola differenza tra una funzione e un metodo: una funzione è un'unità autonoma di istruzioni e un metodo è collegato a un oggetto e può essere referenziato dalthis parola chiave.

I metodi sono utili per qualsiasi cosa, dalla visualizzazione del contenuto dell'oggetto sullo schermo all'esecuzione di complesse operazioni matematiche su un gruppo di proprietà e parametri locali.

For example - Di seguito è riportato un semplice esempio per mostrare come utilizzare il file write() metodo dell'oggetto documento per scrivere qualsiasi contenuto sul documento.

document.write("This is test");

Oggetti definiti dall'utente

Tutti gli oggetti definiti dall'utente e gli oggetti incorporati sono discendenti di un oggetto chiamato Object.

Il nuovo operatore

Il newL'operatore viene utilizzato per creare un'istanza di un oggetto. Per creare un oggetto, ilnew operatore è seguito dal metodo del costruttore.

Nell'esempio seguente, i metodi del costruttore sono Object (), Array () e Date (). Questi costruttori sono funzioni JavaScript incorporate.

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

Il costruttore Object ()

Un costruttore è una funzione che crea e inizializza un oggetto. JavaScript fornisce una speciale funzione di costruzione chiamataObject()per costruire l'oggetto. Il valore restituito diObject() il costruttore viene assegnato a una variabile.

La variabile contiene un riferimento al nuovo oggetto. Le proprietà assegnate all'oggetto non sono variabili e non sono definite con l'estensionevar parola chiave.

Esempio 1

Prova il seguente esempio; dimostra come creare un oggetto.

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

Produzione

Book name is : Perl 
Book author is : Mohtashim

Esempio 2

Questo esempio mostra come creare un oggetto con una funzione definita dall'utente. Quithis parola chiave viene utilizzata per fare riferimento all'oggetto che è stato passato a una funzione.

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

Produzione

Book title is : Perl 
Book author is : Mohtashim

Definizione di metodi per un oggetto

Gli esempi precedenti dimostrano come il costruttore crea l'oggetto e assegna le proprietà. Ma dobbiamo completare la definizione di un oggetto assegnandogli dei metodi.

Esempio

Prova il seguente esempio; mostra come aggiungere una funzione insieme a un oggetto.

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

Produzione

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

La parola chiave "con"

Il ‘with’ parola chiave viene utilizzata come una sorta di scorciatoia per fare riferimento a proprietà o metodi di un oggetto.

L'oggetto specificato come argomento per withdiventa l'oggetto di default per la durata del blocco che segue. Le proprietà e i metodi per l'oggetto possono essere utilizzati senza denominare l'oggetto.

Sintassi

La sintassi per with object è la seguente:

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

Esempio

Prova il seguente esempio.

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

Produzione

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

Oggetti nativi JavaScript

JavaScript ha diversi oggetti incorporati o nativi. Questi oggetti sono accessibili ovunque nel programma e funzioneranno allo stesso modo in qualsiasi browser in esecuzione su qualsiasi sistema operativo.

Ecco l'elenco di tutti gli oggetti nativi JavaScript importanti: