User Tools

Site Tools


appunti4s:es1_oggetti_metodi

Esempio 1

Creare un oggetto window

Provare a comprendere le tre istruzioni della funzione creare(): la prima è un'istruzione di assegnazione che crea una variabile oggetto finestra2 tramite un'istruzione di assegnazione. Gli oggetti finestra2 e window sono oggetti dello stesso tipo.

  1. window è la finestra del browser, quindi non deve essere creata
  2. finestra2 è una nuova finestra, quindi deve essere creata
  3. quando si usa il metodo open() si deve dare un nome alla finestra creata tramite l'assegnazione

La seconda e la terza istruzione si assomigliano, ma con una differenza, quale? Iniziano con un oggetto di nome diverso…

esempio1.htm
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <script type="text/javascript">
      function creare()
      {
         var finestra2 = window.open("","","width=200,height=300");
         window.document.write("<h1>Scrivo in window</h1>");
         finestra2.document.write("<p>Scrivo anche in finestra2</p>");
      }
      </script> 
   </head>
   <body onload="creare()">   
   </body>
</html>
 

Di solito, ogni oggetto, prima di essere usato, deve essere creato dal programmatore, partendo da un modello esistente, ma non l'oggetto window perché esso corrisponde alla finestra del browser (è già aperta). Lo stesso si può dire dell'oggetto document (già presente nel browser).

I modelli da cui si parte per creare oggetti sono spesso detti Classi. Le classi potrebbero essere immaginate come degli “stampi” per costruire oggetti. Questo termine è stato ideato per i linguaggi di programmazione ad oggetti. In Javascript, però, la parola Classi non andrebbe usata perché Javascript è un linguaggio debolmente orientato agli oggetti. Cosa usare per indicare questi “modelli” per oggetti? Tipi di oggetti? http://commons.wikimedia.org/wiki/File:Motlle_crespellines.jpg

L'operatore new

Quando si vuole lavorare sulle parole è necessario utilizzare oggetti String. Questo tipo di oggetto deve essere creato per poter essere utilizzato. Ogni oggetto di tipo String memorizzare una frase e permette di eseguire azioni sulla stessa. Come si possono interpretare le istruzioni del prossimo programma?

  1. L'oggetto window non era stato creato, in quanto già esistente.
  2. L'oggetto finestra2 era stato creato usando window.open() e un'assegnazione.
  3. L'oggetto frase verrà creato, invece, usando l'operatore new, sempre con un'assegnazione.

Di solito per creare oggetti si usa l'operatore new, ma non si può usare per le finestre (window) o per i documenti (document).

Nota sulla scrittura:

  1. I nomi degli oggetti sono in minuscolo (window,document,finestra2,frase)
  2. I nomi dei modelli sono in maiuscolo (String)
esempio2.htm
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <script type="text/javascript">
      function creare()
      {
          var frase = new String("<h1>ciao a tutti :)</h1>");
          window.document.write(frase);
      }
      </script> 
   </head>
   <body onload="creare()">   
   </body>
</html>
 

Proprietà

Gli oggetti di tipo String possiedono, come tutti gli altri oggetti, proprietà e metodi. Nel prossimo esempio:

  1. verrà visualizzata la proprietà frase.length che indica il numero dei caratteri contenuti in un oggetto di tipo String
esempio3.htm
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <script type="text/javascript">
      function creare()
      {
          var frase = new String("<h1>ciao a tutti :)</h1>");
          window.document.write(frase);
          window.document.write("la proprietà vale " + frase.length);
      }
      </script> 
   </head>
   <body onload="creare()">   
   </body>
</html>
 

Anche l'oggetto window possiede delle proprietà. Anche l'oggetto finestra2, ma sono diverse da quelle di window.

  1. Provare ad esempio a visualizzare la seguente proprietà:
    1. finestra2.outerHeight
    2. window.outerHeight
  2. Provare poi a modificarne il valore con un'assegnazione.
appunti4s/es1_oggetti_metodi.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1