Tag Archive for json

Classi in JavaScript

E’ ormai indispensabile usare la programmazione orientata ad oggetti (OOP). Questo anche in JavaScript. Nonostante sia stato usato nell’antichità (ai tempi di IE6) solo per piccoli controlli, ora come ora, non possiamo fare nulla senza utilizzarlo. Ogni sito che si rispetti, infatti, utilizza ormai AJAX. Benvenuti in WEB2 =)

In realtà quelle che siamo abituati a chiamare classi negli altri linguaggi, per JS sono degli oggetti, di tipo Object

  1. var a = new Object()

Vediamo dunque come poter utilizzare gli oggetti in JS. La struttura degli oggetti, è identica a quella di un file JSON. Supponiamo, dunque, di avere un set di funzioni che abbiamo scritto. Queste funzioni le vogliamo inserire in un nostro oggetto, così da poterle facilmente distinguere nel codice che scriviamo e che andremo a leggere da qui a tot mesi per magari porvi modifiche.

Ecco le nostre funzioni di esempio:

  1. function check(val) {
  2.     return val == true;
  3. }
  4. function flip(val) {
  5.     return !val;
  6. }

A puro titolo informativo, le seguenti funzioni, potevano essere dichiarate anche così:

  1. check = function(val) {
  2.     return val == true;
  3. }
  4. flip = function(val) {
  5.     return !val;
  6. }

Proprio da questo, prendiamo spunto per creare il nostro oggetto:

  1. var nomeOggetto = {
  2.     var1 : false,
  3.     check : function (val) {
  4.         return val == true;
  5.     },
  6.     flip : function (val) {
  7.         return !val;
  8.     },
  9.     setValue : function(val) {
  10.         this.var1 = val;
  11.     }
  12. };

State attenti a separare ogni elemento dell’oggetto con una virgola ed alla fine della dichiarazione, mettere il punto e virgola.

Se prima, per utilizzarle le chiamavamo semplicemente da codice, ora le utilizzeremo così:

  1. alert("Variabile prima: "+nomeOggetto.var1);
  2. if (!nomeOggetto.check(nomeOggetto.var1)) {
  3.     nomeOggetto.setValue(nomeOggetto.flip(var1));    
  4. }
  5. alert("Variabile dopo: "+nomeOggetto.var1);

Enjoy :)