Il linguaggio JavaScript
 

Approfondire Javascript

g4b0 15 Gen 2016 14:10
Ciao a tutti,
Uso Javascript da anni come sviluppatore web fullstack, ma per motivi
sia personali che lavorativi avrei intenzione di approfondirlo in modo
più "formale".

In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
Ha ancora senso leggersi un libro del genere, oppure è completamente
sorpassato?

--
g4b0, linux user n. 369000
http://brosulo.net
ciccio 15 Gen 2016 15:27
g4b0 <gabriele.brosulo@gmail.com> ha scritto:

> Ciao a tutti,
> Uso Javascript da anni come sviluppatore web fullstack, ma per motivi
> sia personali che lavorativi avrei intenzione di approfondirlo in modo
> più "formale".

Come mai questo bisogno? Se lo usi da anni non dovresti conoscerlo già
bene?

> In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
> O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
> Ha ancora senso leggersi un libro del genere, oppure è completamente
> sorpassato?

Beh i concetti fondamentali, costrutti del linguaggio, usi tipici
comuni, ecc. ci dovrebbero essere, il problema è che JavaScript
è il linguaggio più martoriato e più rimaneggiato degli ultimi
anni, quindi ne hanno introdotto di modifiche, aggiunte,
eliminazione di API obsolete, ecc...
Converrebbe quindi procurarsi qualcosa di più aggiornato,
dato anche che la versione utilizzata adesso è la 1.8.6
ciccio 15 Gen 2016 15:29
ciccio <21669invalid@mynewsgate.net> ha scritto:

> g4b0 <gabriele.brosulo@gmail.com> ha scritto:
>
>> Ciao a tutti,
>> Uso Javascript da anni come sviluppatore web fullstack, ma per motivi
>> sia personali che lavorativi avrei intenzione di approfondirlo in modo
>> più "formale".
>
> Come mai questo bisogno? Se lo usi da anni non dovresti conoscerlo già
> bene?
>
>> In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
>> O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
>> Ha ancora senso leggersi un libro del genere, oppure è completamente
>> sorpassato?
>
> Beh i concetti fondamentali, costrutti del linguaggio, usi tipici
> comuni, ecc. ci dovrebbero essere, il problema è che JavaScript
> è il linguaggio più martoriato e più rimaneggiato degli ultimi
> anni, quindi ne hanno introdotto di modifiche, aggiunte,
> eliminazione di API obsolete, ecc...
> Converrebbe quindi procurarsi qualcosa di più aggiornato,
> dato anche che la versione utilizzata adesso è la 1.8.6

Anzi seguendo l'ECMA standard la versione corrente è la 6!
g4b0 15 Gen 2016 16:46
On 15/01/2016 15:27, ciccio wrote:
> g4b0 <gabriele.brosulo@gmail.com> ha scritto:
>
>> Ciao a tutti,
>> Uso Javascript da anni come sviluppatore web fullstack, ma per motivi
>> sia personali che lavorativi avrei intenzione di approfondirlo in modo
>> più "formale".
>
> Come mai questo bisogno? Se lo usi da anni non dovresti conoscerlo già
> bene?

Bah, essendo per lo più uno sviluppatore backend l'ho sempre usato da
script kiddie, ora mi trovo a dover lavorare su un grosso progetto che
fa largo uso di JS, per cui vorrei approfondire alcuni concetti che non
mi sono del tutto chiari, come la gestione degli oggetti, i prototipi ed
amenità vaire.

>> In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
>> O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
>> Ha ancora senso leggersi un libro del genere, oppure è completamente
>> sorpassato?
>
> Beh i concetti fondamentali, costrutti del linguaggio, usi tipici
> comuni, ecc. ci dovrebbero essere, il problema è che JavaScript
> è il linguaggio più martoriato e più rimaneggiato degli ultimi
> anni, quindi ne hanno introdotto di modifiche, aggiunte,
> eliminazione di API obsolete, ecc...
> Converrebbe quindi procurarsi qualcosa di più aggiornato,
> dato anche che la versione utilizzata adesso è la 1.8.6

Immaginavo, anche se speravo che fosse un qualcosa di simile al C, per
il quale il K&R è ancora più che attuale.

Grazie per la delucidazione


--
g4b0, linux user n. 369000
http://brosulo.net
ciccio 15 Gen 2016 17:42
g4b0 <gabriele.brosulo@gmail.com> ha scritto:

> On 15/01/2016 15:27, ciccio wrote:
>> g4b0 <gabriele.brosulo@gmail.com> ha scritto:
>>
>>> Ciao a tutti,
>>> Uso Javascript da anni come sviluppatore web fullstack, ma per motivi
>>> sia personali che lavorativi avrei intenzione di approfondirlo in modo
>>> più "formale".
>>
>> Come mai questo bisogno? Se lo usi da anni non dovresti conoscerlo già
>> bene?
>
> Bah, essendo per lo più uno sviluppatore backend l'ho sempre usato da
> script kiddie, ora mi trovo a dover lavorare su un grosso progetto che
> fa largo uso di JS, per cui vorrei approfondire alcuni concetti che non
> mi sono del tutto chiari, come la gestione degli oggetti, i prototipi ed
> amenità vaire.

Capito, beh qualcosa la puoi già cominciare a leggere qui:


http://sviluppare-in-rete.blogspot.it/2008/01/javascript-oggetto-prototype-ed.html

https://it.wikibooks.org/wiki/JavaScript/Costruttori_e_prototipi


sono due guide veloci e penso anche chiare. Come testo invece
non saprei cosa consigliarti, magari qualcun altro qui può
suggerirne uno.


>>> In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
>>> O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
>>> Ha ancora senso leggersi un libro del genere, oppure è completamente
>>> sorpassato?
>>
>> Beh i concetti fondamentali, costrutti del linguaggio, usi tipici
>> comuni, ecc. ci dovrebbero essere, il problema è che JavaScript
>> è il linguaggio più martoriato e più rimaneggiato degli ultimi
>> anni, quindi ne hanno introdotto di modifiche, aggiunte,
>> eliminazione di API obsolete, ecc...
>> Converrebbe quindi procurarsi qualcosa di più aggiornato,
>> dato anche che la versione utilizzata adesso è la 1.8.6
>
> Immaginavo, anche se speravo che fosse un qualcosa di simile al C, per
> il quale il K&R è ancora più che attuale.

No purtroppo non è la stessa cosa, vero è che anche per il
linguaggio C esiste uno standard che però evolve mooolto più
lentamente di JavaScript. Per quest'ultimo invece si prende
come base lo standard ECMA che però evolve molto più velocemente
e sensibilmente, con variazioni anche significative tipo
come accennato l'eliminazione di API deprecate.
g4b0 15 Gen 2016 17:57
On 15/01/2016 17:42, ciccio wrote:
>
http://sviluppare-in-rete.blogspot.it/2008/01/javascript-oggetto-prototype-ed.html
>
> https://it.wikibooks.org/wiki/JavaScript/Costruttori_e_prototipi

Grazie.

> No purtroppo non è la stessa cosa, vero è che anche per il
> linguaggio C esiste uno standard che però evolve mooolto più
> lentamente di JavaScript. Per quest'ultimo invece si prende
> come base lo standard ECMA che però evolve molto più velocemente
> e sensibilmente, con variazioni anche significative tipo
> come accennato l'eliminazione di API deprecate.

Capito.


--
g4b0, linux user n. 369000
http://brosulo.net
Andrea Scartabelli 15 Gen 2016 20:31
On 15/01/16 14:10, g4b0 wrote:
> Ciao a tutti,
> Uso Javascript da anni come sviluppatore web fullstack, ma per motivi
> sia personali che lavorativi avrei intenzione di approfondirlo in modo
> più "formale".
>
> In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
> O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
> Ha ancora senso leggersi un libro del genere, oppure è completamente
> sorpassato?

Completamente sorpassato direi!

Mi è personalmente difficile consigliarti un libro o un percorso ora,
anche perché ECMAScript sta evolvendo in fretta e i libri non possono
tenere il passo.

Tieni conto che oramai, quando in un progetto la parte JavaScript
diventa preponderante, spesso si tende a programmare in ES6 (e anche
oltre, vedi ES2015 come lo chiamano ora) usando dei transpiler come Babel:

<https://babeljs.io/>

Detto questo, parecchio tempo fa Zer0 diede un consiglio su questo
newsgroup, ed è un libro che uso spesso come pietra di paragone di come
a mio avviso dovrebbero essere i libri sulla programmazione: chiaro,
sintetico, efficace.

<http://www.amazon.com/Effective-JavaScript-Specific-Software-Development/dp/0321812182/>

Purtroppo è fermo a ES5, visto che mi non sembra siano state pubblicate
edizioni aggiornate.

Nulla di nuovo e anche quando lo ebbi in mano trovai principalmente cose
che uno sviluppatore js dovrebbe conoscere a memoria, ma è stato lo
stesso un piacere leggerlo.

Forse per uno che js deve approfondirlo può funzionare ancora?
4ndre4 15 Gen 2016 20:39
On Friday, 15 January 2016 13:10:59 UTC, g4b0 wrote:

[...]
Lascia stare il libro che hai in ufficio.

Questa e` una lista dei libri che io ti consiglio:

http://www.goodreads.com/list/show/10757.Best_JavaScript_Books

Leggi qualunque cosa Douglas Crockford o John Resig scrivono ;)
Alessandro Pellizzari 15 Gen 2016 21:11
Il Fri, 15 Jan 2016 14:10:57 +0100, g4b0 ha scritto:

> In ufficio abbiamo un vecchio libro: "Javascript - La guida" della
> O'reilly. Si tratta di una edizione del 2000 relativo a Javascript 1.3.
> Ha ancora senso leggersi un libro del genere, oppure è completamente
> sorpassato?

Ce l'ho anche io. Puoi usarlo per alzare il monitor. :)

Il miglior libro su Javascript "moderno" che abbia mai letto è
"Professional Javascript" di N. Zakas (della Wrox).

Si basa su Javascript 1.5/Ecmascript5 (ES5), che però è tuttora quello
supportato da tutti i browser.

Ecmascript6/Ecmascript2015 (adesso hanno deciso di chiamarli con gli anni
perchè sperano di rilasciarne uno all'anno) è stato più o meno formalizzato
a dicembre 2015, e introduce un sacco di syntactic sugar. In parte fatto
bene (let, const), in parte raffazzonato (class), in parte sbilenco
(destructuring), IMHO

Prima di prenderlo in mano, imparati bene ES5, che rimane comunque valido
(per esempio, come si gestisce il this o gli attributi degli oggetti).

Finito quello, prendi in mano un framework e inizia a studiartelo. Io ti
sconsiglio Angular e React. Non perché non siano buoni, ma perché sono
troppo chiusi in sè stessi e non ti insegnano niente tranne il loro
sistema.

Parti da Backbone (con Underscore e jQuery), a cui poi aggiungi Marionette
(quasi subito) e RequireJs. Anche se poi non lo userai, ti darà una buona
base di MV*, rimanendo molto vicino al Javascript classico.

Fatto quello, a meno che non sia uscito qualcosa di completamente nuovo
nel frattempo, puoi prendere in mano React, con tutta la sua pletora di
tool aggiuntivi necessari per usarlo decentemente (jsx, babel, flux/redux/
sar*****ux, node/npm, grunt/gulp/sar*****unp, ecc.).

Salterei a piè pari Angular, che farà presto la fine di GWT e YUI, IMHO.

Bye.
4ndre4 16 Gen 2016 19:24
On Friday, 15 January 2016 20:11:36 UTC, Alessandro Pellizzari wrote:

[...]
> Il miglior libro su Javascript "moderno" che abbia mai letto è
> "Professional Javascript" di N. Zakas (della Wrox).

Confermo.

> Salterei a piè pari Angular, che farà presto la fine di GWT e YUI, IMHO.

Dici?
Alessandro Pellizzari 16 Gen 2016 22:07
Il Sat, 16 Jan 2016 10:24:26 -0800, 4ndre4 ha scritto:

> On Friday, 15 January 2016 20:11:36 UTC, Alessandro Pellizzari wrote:

>> Salterei a piè pari Angular, che farà presto la fine di GWT e YUI,
>> IMHO.

> Dici?

Secondo me sarà vittima della sua stessa "strategia". Ha rivoluzionato il
modo di fare framework in JS, e meno di 2 anni dopo React lo ha
rivoluzionato di nuovo, ma nel senso opposto.

Non morirà di certo in 1-2 anni. Ci sono troppi che l'hanno adottato, ma
visto che la 2 sarà incompatibile, molti stanno già saltando il fosso,
cercando di integrare i componenti di react o flux/redux nelle app
angular. Cosa gli impedirà di passare direttamente a react quando la 1 sarà
end-of-life?

Adesso non è più abbastanza cool da essere usato dalle startup, ed è già
diventato legacy.

Nel giro di 2 anni potrebbe capitare lo stesso a react, eh. :)

Il panorama js adesso è completamente impazzito. Le tecnologie cambiano
ogni settimana. Non fai in tempo a imparare un tool o una metodologia che
te lo cambiano. O si stabilizza un po' o esplode del tutto, IMHO.

Esperienza personale: ho passato una giornata a configurare npm, babel,
react, jsx per vedere come usare ES6 con React e Redux, per trovarmi alla
fine con 300 MB di moduli node, e un b*****e hello world che scarica 1 MB
di JS sul client. Tutto per "l'eldorado" delle app isomorfiche. In epoca
di API e microservizi.

La stessa cosa in jQuery, Backbone, Marionette con require.js stava in
meno di 200kb ed erano già tanti. E niente build-time o moduli node.

Mi sono chiesto se ne valga la pena, o se per caso non sarebbe meglio
sviluppare un po' l'idea modulare di Marionette semplificando Backbone per
fargli fare solo da model.

OK, mi sono sfogato un po', sorry. :)

Bye.
ciccio 17 Gen 2016 12:44
Alessandro Pellizzari <shuriken@amiran.it> ha scritto:

> Il Sat, 16 Jan 2016 10:24:26 -0800, 4ndre4 ha scritto:
>
>> On Friday, 15 January 2016 20:11:36 UTC, Alessandro Pellizzari wrote:
>
>>> Salterei a piè pari Angular, che farà presto la fine di GWT e YUI,
>>> IMHO.
>
>> Dici?
>
> Secondo me sarà vittima della sua stessa "strategia". Ha rivoluzionato il
> modo di fare framework in JS, e meno di 2 anni dopo React lo ha
> rivoluzionato di nuovo, ma nel senso opposto.
>
> Non morirà di certo in 1-2 anni. Ci sono troppi che l'hanno adottato, ma
> visto che la 2 sarà incompatibile, molti stanno già saltando il fosso,
> cercando di integrare i componenti di react o flux/redux nelle app
> angular. Cosa gli impedirà di passare direttamente a react quando la 1 sarà
> end-of-life?
>
> Adesso non è più abbastanza cool da essere usato dalle startup, ed è già
> diventato legacy.
>
> Nel giro di 2 anni potrebbe capitare lo stesso a react, eh. :)
>
> Il panorama js adesso è completamente impazzito. Le tecnologie cambiano
> ogni settimana. Non fai in tempo a imparare un tool o una metodologia che
> te lo cambiano. O si stabilizza un po' o esplode del tutto, IMHO.
>
> Esperienza personale: ho passato una giornata a configurare npm, babel,
> react, jsx per vedere come usare ES6 con React e Redux, per trovarmi alla
> fine con 300 MB di moduli node, e un b*****e hello world che scarica 1 MB
> di JS sul client. Tutto per "l'eldorado" delle app isomorfiche. In epoca
> di API e microservizi.
>
> La stessa cosa in jQuery, Backbone, Marionette con require.js stava in
> meno di 200kb ed erano già tanti. E niente build-time o moduli node.
>
> Mi sono chiesto se ne valga la pena, o se per caso non sarebbe meglio
> sviluppare un po' l'idea modulare di Marionette semplificando Backbone per
> fargli fare solo da model.
>
> OK, mi sono sfogato un po', sorry. :)

No ma è così purtroppo, ormai ci sono troppi framework, troppe
librerie, troppa roba "di contorno". Ormai è tutta un'accozzaglia
di ******* da importare e impastare, non c'è più una sana e giusta
progettazione dal basso, stando attenti al consumo di risorse
varie (banda, spazio, velocità, ecc.). E' per questo che
se c'è da fare una cosa in JavaScript io la faccio in
JavaScript puro, senza essere costretto a dipendere da
una libreria che oggi c'è e domani può benissimo essere
abbandonata.
Alex 17 Gen 2016 20:14
Il 17/01/2016, ciccio ha detto :
> Alessandro Pellizzari <shuriken@amiran.it> ha scritto:
>
>> Il Sat, 16 Jan 2016 10:24:26 -0800, 4ndre4 ha scritto:
>>
>>> On Friday, 15 January 2016 20:11:36 UTC, Alessandro Pellizzari wrote:
>>>> Salterei a piè pari Angular, che farà presto la fine di GWT e YUI,
>>>> IMHO.
>>
>>> Dici?
>>
>> Secondo me sarà vittima della sua stessa "strategia". Ha rivoluzionato il
>> modo di fare framework in JS, e meno di 2 anni dopo React lo ha
>> rivoluzionato di nuovo, ma nel senso opposto.
>>
>> Non morirà di certo in 1-2 anni. Ci sono troppi che l'hanno adottato, ma
>> visto che la 2 sarà incompatibile, molti stanno già saltando il fosso,
>> cercando di integrare i componenti di react o flux/redux nelle app
>> angular. Cosa gli impedirà di passare direttamente a react quando la 1 sarà

>> end-of-life?
>>
>> Adesso non è più abbastanza cool da essere usato dalle startup, ed è già
>> diventato legacy.
>>
>> Nel giro di 2 anni potrebbe capitare lo stesso a react, eh. :)
>>
>> Il panorama js adesso è completamente impazzito. Le tecnologie cambiano
>> ogni settimana. Non fai in tempo a imparare un tool o una metodologia che
>> te lo cambiano. O si stabilizza un po' o esplode del tutto, IMHO.
>>
>> Esperienza personale: ho passato una giornata a configurare npm, babel,
>> react, jsx per vedere come usare ES6 con React e Redux, per trovarmi alla
>> fine con 300 MB di moduli node, e un b*****e hello world che scarica 1 MB
>> di JS sul client. Tutto per "l'eldorado" delle app isomorfiche. In epoca
>> di API e microservizi.
>>
>> La stessa cosa in jQuery, Backbone, Marionette con require.js stava in
>> meno di 200kb ed erano già tanti. E niente build-time o moduli node.
>>
>> Mi sono chiesto se ne valga la pena, o se per caso non sarebbe meglio
>> sviluppare un po' l'idea modulare di Marionette semplificando Backbone per
>> fargli fare solo da model.
>>
>> OK, mi sono sfogato un po', sorry. :)
>
> E' per questo che
> se c'è da fare una cosa in JavaScript io la faccio in
> JavaScript puro, ... .

Evviva!
Qualcuno è rimasto ancora.
Ciao

--
Alex

--- news://freenews.netfront.net/ - complaints: news@netfront.net ---
oss 18 Gen 2016 14:56
Il 15/01/2016 20:31, Andrea Scartabelli ha scritto:
> Detto questo, parecchio tempo fa Zer0

A proposito, che fine ha fatto? Si sente la sua mancanza. Mi ricordo
quando mi ha spiegato le closure tre volte, perché ogni volta gli dicevo
di avere capito e invece non avevo capito nulla, e poi le promise...
Andrea Scartabelli 18 Gen 2016 20:18
On 18/01/16 14:56, oss wrote:
> Il 15/01/2016 20:31, Andrea Scartabelli ha scritto:
>> Detto questo, parecchio tempo fa Zer0
>
> A proposito, che fine ha fatto? Si sente la sua mancanza. Mi ricordo
> quando mi ha spiegato le closure tre volte, perché ogni volta gli dicevo
> di avere capito e invece non avevo capito nulla, e poi le promise...

L'ho sentito, un po' di corsa, giusto stamattina: è vivo e vegeto e sta
bene; non ho fatto in tempo a redarguirlo per la latitanza.

Quando lo sento con più calma gli dico che ti manca!
oss 18 Gen 2016 20:53
Il 18/01/2016 20:18, Andrea Scartabelli ha scritto:
> On 18/01/16 14:56, oss wrote:
>> Il 15/01/2016 20:31, Andrea Scartabelli ha scritto:
>>> Detto questo, parecchio tempo fa Zer0
>>
>> A proposito, che fine ha fatto? Si sente la sua mancanza. Mi ricordo
>> quando mi ha spiegato le closure tre volte, perché ogni volta gli dicevo
>> di avere capito e invece non avevo capito nulla, e poi le promise...
>
> L'ho sentito, un po' di corsa, giusto stamattina: è vivo e vegeto e sta
> bene; non ho fatto in tempo a redarguirlo per la latitanza.
>
> Quando lo sento con più calma gli dico che ti manca!
>
Grazie, mi farebbe piacere! E nel frattempo grazie a chi in sua assenza
ha tenuto vivo il gruppo, io anche se non partecipo leggo tutto. In
questo thread senza capire quasi nullax/nientux, ma non fa niente! :)
g4b0 19 Gen 2016 14:29
Grazie a tutti per i suggerimenti, vorrà dire che metterò mano al
portafogli e prenderò qualcosa di più recente.

--
g4b0, linux user n. 369000
http://brosulo.net
g4b0 21 Gen 2016 15:03
On 19/01/2016 14:29, g4b0 wrote:
> Grazie a tutti per i suggerimenti, vorrà dire che metterò mano al
> portafogli e prenderò qualcosa di più recente.

Alla fine ho preso questi, arriveranno a giorni:

http://www.amazon.it/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=&sr=

http://www.amazon.it/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=&sr=

Con quale inizio?

--
g4b0, linux user n. 369000
http://brosulo.net
g4b0 21 Gen 2016 16:28
Un paio di domande a proposito dei link che mi hai suggerito

On 15/01/2016 17:42, ciccio wrote:
>
http://sviluppare-in-rete.blogspot.it/2008/01/javascript-oggetto-prototype-ed.html

Forse non ho capito bene, ma il problema descritto a proposito della
proprietà p_passeggeri credo non sia più attuale nelle recenti
implementazioni di JS, in quanto non ho dovuto ricorrere ad alcun
"barbatrucco" per poter gestire array diversi su oggetti diversi. Oppure
mi è sfuggito qualcosa?

> https://it.wikibooks.org/wiki/JavaScript/Costruttori_e_prototipi

Leggendo i due link ho notato che i metodi degli oggetti vengono
dichiarati in modo diverso. Quale dei seguenti è più corretto?

this.pippo = function() {}
function pippo() {}



--
g4b0, linux user n. 369000
http://brosulo.net
4ndre4 21 Gen 2016 17:54
On Thursday, 21 January 2016 14:03:45 UTC, g4b0 wrote:

[...]
> Con quale inizio?

Zakas e` piu` indicato per iniziare. Di Crockford ti consiglio di seguire anche
la sua pagina personale: http://www.crockford.com/
4ndre4 21 Gen 2016 21:18
On Thursday, 21 January 2016 15:28:14 UTC, g4b0 wrote:

[...]
> Forse non ho capito bene, ma il problema descritto a proposito della
> proprietà p_passeggeri credo non sia più attuale nelle recenti
> implementazioni di JS, in quanto non ho dovuto ricorrere ad alcun
> "barbatrucco" per poter gestire array diversi su oggetti diversi. Oppure
> mi è sfuggito qualcosa?

In che senso? Che cos'e` che hai fatto, esattamente? Comunque, stai guardando un
articolo di 8 anni fa. Lo standard dietro JavaScript cambia molto rapidamente.
Se un articolo e` piu` vecchio di un paio d'anni, lascialo perdere. Ormai, devi
concentrarti su ECMAScript 5 e 6.

>> https://it.wikibooks.org/wiki/JavaScript/Costruttori_e_prototipi
>
> Leggendo i due link ho notato che i metodi degli oggetti vengono
> dichiarati in modo diverso. Quale dei seguenti è più corretto?
>
> this.pippo = function() {}
> function pippo() {}

Il metodo migliore per costruire oggetti e` usare il constructor/prototype
pattern:

function Dog(name, breed) {
this.name = name;
this.breed = breed;
}

Dog.prototype.bark = function() {
alert(this.name + ': arf! arf!');
};

Dog.prototype.howl = function() {
alert(this.name + ': ouuuuuuu!')
}

var dog1 = new Dog('Fido', 'German Shepherd');
var dog2 = new Dog('Pluto', 'Bloodhound');

dog1.bark();
dog2.howl();
g4b0 25 Gen 2016 13:54
On 21/01/2016 21:18, 4ndre4 wrote:
> Il metodo migliore per costruire oggetti e` usare il constructor/prototype
pattern:
>
> function Dog(name, breed) {
> this.name = name;
> this.breed = breed;
> }
>
> Dog.prototype.bark = function() {
> alert(this.name + ': arf! arf!');
> };
>
> Dog.prototype.howl = function() {
> alert(this.name + ': ouuuuuuu!')
> }
>
> var dog1 = new Dog('Fido', 'German Shepherd');
> var dog2 = new Dog('Pluto', 'Bloodhound');
>
> dog1.bark();
> dog2.howl();

Avevo letto da qualche parte che dal punto di vista delle performance
passare attraverso il prototype è meno performante che dichiarare i
metodi direttamente, ma forse era un articolo datato...

Però firefox che nella console mi segnala questo warning:

mutating the [[Prototype]] of an object will cause your code to run very
slowly; instead create the object with the correct initial [[Prototype]]
value using Object.create

In realtà non indica il codice a cui si riferisce, per cui forse sono io
che faccio confusione. Oppure no?

--
g4b0, linux user n. 369000
http://brosulo.net
g4b0 25 Gen 2016 15:00
On 21/01/2016 21:18, 4ndre4 wrote:
> Il metodo migliore per costruire oggetti e` usare il constructor/prototype
pattern:
>
> function Dog(name, breed) {
> this.name = name;
> this.breed = breed;
> }
>
> Dog.prototype.bark = function() {
> alert(this.name + ': arf! arf!');
> };
>
> Dog.prototype.howl = function() {
> alert(this.name + ': ouuuuuuu!')
> }
>
> var dog1 = new Dog('Fido', 'German Shepherd');
> var dog2 = new Dog('Pluto', 'Bloodhound');
>
> dog1.bark();
> dog2.howl();

Avevo letto da qualche parte che dal punto di vista delle performance
passare attraverso il prototype è meno performante che dichiarare i
metodi direttamente, ma forse era un articolo datato...

Però firefox che nella console mi segnala questo warning:

mutating the [[Prototype]] of an object will cause your code to run very
slowly; instead create the object with the correct initial [[Prototype]]
value using Object.create

In realtà non indica il codice a cui si riferisce, per cui forse sono io
che faccio confusione. Oppure no?

--
g4b0, linux user n. 369000
http://brosulo.net
4ndre4 25 Gen 2016 15:52
On Monday, 25 January 2016 12:54:51 UTC, g4b0 wrote:

[...]
> mutating the [[Prototype]] of an object will cause your code to run very
> slowly; instead create the object with the correct initial [[Prototype]]
> value using Object.create

Perche` cambiare il prototype di un oggetto inesistente impedisce
l'ottimizzazione (e quindi presumibilmente ammazza le performance), pero` puoi
postare l'intero codice che hai utilizzato?
4ndre4 25 Gen 2016 19:40
On 25/01/2016 14:52, 4ndre4 wrote:
[...]
> Perche` cambiare il prototype di un oggetto inesistente

*esistente


--
4ndr4
"The use of COBOL cripples the mind; its teaching should, therefore, be
regarded as a criminal offense." (E. Dijkstra)
"Ora, questo "Delta11" non è nulla di più di uno scemo del
villaggio[...]" - http://goo.gl/1nrkkX

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio JavaScript | Tutti i gruppi | it.comp.lang.javascript | Notizie e discussioni javascript | Javascript Mobile | Servizio di consultazione news.