Perché creare una classe basata su JavaScript?

5

JavaScript è un linguaggio prototipo. Per trasformarlo in un linguaggio di classe aggiunge poco valore? Non sto parlando delle migliori pratiche qui. Ricordo di aver letto un articolo di ritorno, secondo il quale la visione del mondo basata sulla classe è percepita più difettosa di quella dei prototipi. Il mio sommario può essere trovato qui: link . Sto resistendo all'utilizzo del componente aggiuntivo jQuery basato sulla classe e di altri tentativi di facilitare JavaScript basato su classi. La pressione dei pari è strong ma esiste una ragione teorica o pratica più strong per cui dovrei smettere di resistere?

    
posta CarneyCode 15.02.2011 - 19:52
fonte

3 risposte

7

Continua a resistere!

JavaScript va bene così come , soffre solo di alcuni equivoci.

  1. Non è Java. Non è nemmeno correlato. Il nome è stato scelto per cavalcare le code del mantello di Java e ci è riuscito, ma ha favorito l'idea che fosse in qualche modo una versione leggera di Java.
  2. È funzionale. Le funzioni sono "cittadini di prima classe" . Stare bene con la programmazione funzionale ti darà un vantaggio su JavaScript.
  3. È basato su prototipi. Ciò significa che non hai l'ereditarietà classica, ma questo ti dà una maggiore flessibilità nel mescolare e abbinare.
risposta data 16.02.2011 - 17:02
fonte
2

Recentemente ho scoperto il ragionamento dietro i linguaggi orientati agli oggetti basati su prototipo e basati su classi. Ho sempre pensato che i prototipi non avevano senso, perché prima o poi scoprirai che i tuoi oggetti sono in qualche modo simili e puoi raggrupparli, creare gerarchie e usare il polimorfismo ... Penso che il punto sia capire, che con i prototipi, il linguaggio in sé è più flessibile - potresti ad esempio implementare i contratti, la programmazione orientata all'aspetto e tutti i tipi di metaprogrammazione molto più facili. Potresti creare interfacce più intelligenti, componenti con risoluzione delle dipendenze e molto altro ... Penso che i prorotypes siano una caratteristica del linguaggio migliore, ma bisogna ricordare che le classi sono necessarie e che dovrebbe esserci una libreria per loro.

    
risposta data 16.02.2011 - 11:47
fonte
-2

Non ti importa se il tuo JavaScript è basato sulla classe o sul prototipo. La domanda importante è come rendere il tuo programma orientato agli oggetti. Poiché il DOM svolge il ruolo centrale in siti Web / applicazioni Web, è possibile concentrarsi sul rendere i nodi DOM orientati agli oggetti. Vedi ad esempio questa demo (implementata usando la libreria Entwine):

link

    
risposta data 15.02.2011 - 20:10
fonte

Leggi altre domande sui tag