Classi in javascript

Tempo di lettura: 3 minuti

Il concetto di classe esiste in qualsiasi linguaggio a programmazione orientato a oggetti.

In javascript (o perlomeno per le versioni precedenti all’ECMAScript 6), per creare le classi si potevano usare vari modi.

Il primo che mi viene in mente è quello di sfruttare le funzioni di javascript.
Se volessimo creare una classe Shape, dal quale poi creare diverse istanze, potremmo fare così:


function Shape()
{
  this.name = "Shape";
}

e se successivamente volessimo creare delle istanze, potremmo fare così:

var shape1 = new Shape();
var shape2 = new Shape();

Potremmo anche passare dei valori quando viene creata una nuova istanza, come in questo esempio

function Shape(_name)
{
  this.name = _name;
}

var shape1 = new Shape("cerchio");

Una classe può avere al sup interno delle variabili (come per esempio “name”), ma anche delle funzioni:

function Shape()
{
  this.name = "Shape";
  this.draw = function()
  {
    // Disegna forma
  }
}

Come potete vedere una funziona all’interno di una “classe” è scritta in un modo leggermente diverso da come vengono scritte le funzioni solitamente.
Per richiamare una funzione di una classe, una volta create l’istanza basta usare il “.” per richiamare la funzione che ci interessa:

var shape1 = new Shape();
shape.draw();

Un altro modo per creare un metodo di una classe, è quello di usare prototype. Se alla classe appena create volessimo aggiungere un metodo “setColor(_color)” potremmo fare così:

Shape.prototype.setColor = function(_color)
{
  this.color = _color;
}

Possiamo scrivere queste righe di codice in qualsiasi punto del vostro codice e da quel punto in poi, tutti le istanze create o creerete, avranno anche il metodo da voi appena creato.