<div dir="ltr"><div><div><div><div><div><div>@carlos<br><br></div>Nel tuo esempio intanto c'è una cosa poco chiara parlando in termini di Javascript: le variabili si dichiarano all'interno delle funzioni con "var" e lo si fa una volta sola. Quindi nel tuo codice già è presente un "var pippo" 2 volte, e questo potrebbe portare a dei fraintendimenti. La dichiarazione "var pippo" ovunque tu la metta (tu l'hai messa sia fuori che dentro) abbiamo detto che si comporta "come se" tu l'avessi messa una sola volta e all'inizio della funzione. Quindi si comporta esattamente come dovrebbe.<br><br></div>Ti faccio un esempio un po' diverso:<br><br></div>(function () {<br></div>    var pippo = 0;<br><br></div>    _.each([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function (element) {<br></div>        var pippo = i;<br><div>    });<br><br></div><div>    console.log(pippo);<br></div><div><div><div>})();<br><br></div><div>(_.each è roba di undercorejs ma non te ne curar)<br><br></div><div>Non ho provato ma direi che in questo caso dovrebbe stampare pippo = 0. Function Scope.<br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">Il giorno 27 febbraio 2015 13:26, Nadir Sampaoli <span dir="ltr"><<a href="mailto:nadirsampaoli@gmail.com" target="_blank">nadirsampaoli@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr"><br>
Il 27/feb/2015 11:18 "Carlos Catucci" <<a href="mailto:carlos.catucci@gmail.com" target="_blank">carlos.catucci@gmail.com</a>> ha scritto:<span class=""><br>
> Arrow function mi fa tanto PHP, e non ho capito come funziona. Il tipo fa prima un esempio dove scrive<br>
><br>
> employees.forEach(function(emp) {<br>
>     totalAge += emp.age;<br>
> });<br>
><br>
> E va bene, ma qui emp la definisce lui come parametro passato alla funzione, poi scrive<br>
><br>
> employees.forEach(emp => {<br>
>     totalAge += emp.age;<br>
> });<br>
><br>
> che sarebbe la lambda, ma scritto cosi' e' poco chiaro. </span></p>
<p dir="ltr">Quell'esempio secondo me spiega poco. La cosiddetta fat arrow (scritta `=>`) è presa da coffeescript che ha due notazioni per le funzioni anonime.<br>
Una è `->` (o "thin arrow") e dovrebbe essere equivalente ad una normale `function () {}`.</p>
<p dir="ltr">La fat arrow invece fa il bind automatico del `this` alla funzione, cioè dovrebbe equivalere a `(function(){}).bind(this)`.</p>
<p dir="ltr">Se non si è pratici di come funziona il "this" in JS la cosa può risultare poco chiara.</p>
<p dir="ltr">--<br>
Nadir</p>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br></div>