03/09/17 10:53
Thejuster
Salve ragazzi, chiedevo come posso utilizzare le classi in javascript?
Mi sa che perdo qualche passaggio o sono confuso su alcune nozioni che ho letto sul manuale.
Normalmente per dichiarare una classe faccio in questo modo
Function test() {};
test.prototype.esegui = funciont()
{
};
test.esegui();
Ma ho visto anche altri modi del tipo
Test = {
.....
}
Che differenza c'è tra i due modi?
E quale sistema conviene usare di più?
Ultima modifica effettuata da Thejuster 03/09/17 10:54
03/09/17 13:14
pierotofy
Disclaimer: Javascript non e' un linguaggio ad oggetti.
Il modo corretto e' il primo che hai riportato.
Se usi il secondo:
var A = {
test: function(){ console.log("test"); }
};
var istanza = new A(); // errore: Uncaught TypeError: A is not a constructor
Non hai creato una classe, hai semplicemente definito un oggetto con una funzione.
Se vuoi usare Javascript in stile OOP, e' consigliabile usare una libreria come prototype:
prototypejs.org/ e tenere sempre in mente che non riuscirai mai ad avere a pieno tutte le caratteristiche dell'OOP. Javascript e' un linguaggio funzionale, non OOP.
Ultima modifica effettuata da pierotofy 03/09/17 13:15
06/09/17 18:36
pierotofy
Un linguaggio OOP deve avere incapsulamento, ereditarieta' e polimorfismo. Javascript (anche il nuovo standard ES6) non fornisce l'incapsulamento (no, neanche tramite l'uso delle closures, perche' posso sempre sovvrascrivere una closure).