Differenze nel processo di progettazione / pensiero per OO in Java e JavaScript [duplicato]

1

Nonostante condividano un nome e una sintassi simili, Java e JavaScript sono piuttosto diversi. Tuttavia, entrambi hanno funzioni orientate agli oggetti.

Come novizio di JavaScript, le differenze principali che posso vedere tra Java e l'Orientamento degli oggetti di JavaScript sono nell'ereditarietà e nella sintassi della descrizione di "classe" / oggetto.

Supponendo che quanto sopra sia corretto, sarebbe una buona idea pensare ai miei oggetti JavaScript come oggetti Java durante la progettazione e successivamente "tradurli" in codice JavaScript? Il mio pensiero è che i rispettivi oggetti di entrambe le lingue si riducono a proprietà e metodi / funzioni. Non ho intenzione di utilizzare l'ereditarietà o aggiungere dinamicamente proprietà / funzioni.

L'adozione di questo approccio potrebbe portare a difficoltà o perdere le principali funzionalità di JavaScript?

    
posta fdsa 21.05.2015 - 04:56
fonte

1 risposta

2

Per la maggior parte, puoi scrivere codice molto simile a Java in JavaScript, ma di solito è più semplice non farlo. Ci sono due fattori piuttosto importanti che influenzano il tuo design: digitazione dinamica e callback in stile funzionale.

La digitazione dinamica significa che non si utilizzano interfacce e non è necessario creare molte di quelle piccole classi che non fanno altro che implementare interfacce o creare colla tra altre classi o altre operazioni per rendere felici i sistemi di tipo statico . Le persone che hanno programmato in Java solo in precedenza spesso non si rendono conto di quanto sia di tipo system boilerplate. Java è piuttosto brutto in quel reparto, anche rispetto ad altri linguaggi tipizzati staticamente.

Le callback in stile funzionale significano invece di creare un oggetto con un metodo actionPerformed , basta passare direttamente una funzione. Questo elimina molte delle classi che crei al solo scopo di ricevere eventi asincroni e ti dà un molto più flessibilità in quanto i dati ti vengono trasmessi.

Quello che scoprirai è che gli oggetti del modello di dati JavaScript tendono ad essere abbastanza simili alle loro controparti Java, ma la logica di controllo e di colla di solito è molto diversa.

    
risposta data 21.05.2015 - 23:52
fonte