Assolutamente! Quando scrivo javascript, scrivo principalmente oggetti. Javascript ha un meraviglioso, sottile, modello di oggetto elegante IMHO che identifica istanze di funzioni, mappe e oggetti. Quindi puoi approfittare di ognuna di quelle semantiche. In pratica, finisco per avvolgere tutto il mio codice in oggetti, non a causa della mia esperienza in Java, ma solo perché consente una buona modularizzazione.
Inoltre, a causa delle equivalenze interessanti tra funzioni, mappe e oggetti, potrebbe essere un sacco di persone che utilizzano la progettazione di oggetti senza rendersene conto.
Ad esempio, specialmente con le moderne librerie javascript disponibili, vedo un sacco di codice simile a questo:
{ 'thing1': 'blah',
'thing2': function() { ... }
}
Questo è un approccio orientato agli oggetti, poiché definisce una mappa (o array associativo) che in javascript è uguale a un oggetto. (o visa-versa, dimentico). Il punto importante è che raggruppa i dati con la funzionalità, che è una preoccupazione principale di OO.
In caso contrario, vedo un sacco di codice arrotolato in oggetti ai fini della modularizzazione. jquery è strongmente orientato agli oggetti e si vedono molte estensioni come:
$.zoom = new function() {
var privateValue = 0;
this.visibleFunction = function() { ... };
}();
Che fissa un oggetto sopra quello che fornisce jquery.
Quindi, nella mia esperienza, sempre più negli ultimi anni quando le strutture javascript assumono un aspetto OO, è che la pratica OO in javascript è quasi la metodologia predominante. E, dalla mia esperienza, nessun serio sviluppatore di javascript mi ha dato dolore per far ruotare il mio codice in oggetti - semmai esattamente il contrario.
(In confronto, non è così vero con il mondo Python, dove in Python l'atteggiamento più naturale è cadere nelle funzioni a livello di modulo.)
Ma la gioia che trovo con OO in javascript è che puoi sfruttare i buoni meccanismi di visibilità / visibilità che fornisce per creare veramente una semantica degli oggetti pulita in un modo che può essere davvero ingombrante in java. E poi ottieni i vantaggi di un linguaggio dinamico, come l'associazione tardiva di funzioni agli oggetti. Inoltre, in Java, la riflessione è un grande insieme di utilità, ma l'ho sempre trovato davvero ingombrante. Ma in javascript, la riflessione è solo un aspetto naturale della lingua.
Quindi mi piace prendere una pausa e fare OO in javascript di tanto in tanto, perché mi sembra liberatorio dopo aver faticato con Java per un po '.
Penso che la differenza principale con OO in java e javacript sia che javascript non è così odioso a riguardo.