Passa ai contenuti principali

CoffeScript e funzioni globali

Ultimamente sto utilizzando CoffeeScript per un progetto.
Effettivamente semplifica notevolmente la realizzazione del codice javascript.
Con le funzioni gloali però risulta essere un po' più ostico ed infatti mi sono imbattuto all'inizio in un problema: le funzioni definite in coffeescript e richiamate esternamente generano errore.
myFn = (location) ->
  console.log location

myFn "hello"
Se si  richiama la funzione direttamente da console, ad esempio, è mostrato l'errore ReferenceError: yourMom is not defined

Questo perchè CoffeScript inserisce tutto il codice in una closure:
(function() {
  var myFn;
  myFn = function(location) {
    return console.log(location);
  };
  myFn("hello");
}).call(this);
Per poter ovviare al problema è sufficiente esportare la funzione definita in CoffeeScript nel global scope:  
@myFn = (location) ->
  console.log location

myFn "hello"
[vedi stackoverflow]

Commenti

Post popolari in questo blog

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Ubuntu: La propria installazione di python è danneggiata. Correggere il collegamento simbolico «/usr/bin/python».

Questa è un problema, soprattutto se si vuole aggiornare la distribuzione.+ Dì la verità: hai pacioccato con le versioni di python vero? Volevi usare la 3.5 e non 2.7 e così hai aggiunto alternatives o manipolato il symlink. No? io si. Così in fase di aggiornamento mi sono bloccato. Allora per risolverlo ecco la soluzione: elimina tuttle le eventuali alternative : sudo update-alternatives –remove-all python crea il symlink alla 2.7 sudo ln -s /usr/bin/python3.5 /usr/bin/python aggiorna i permessi: sudo chmod 7777 /usr/bin/python Ora funziona tutto. La soluzione l’ho scovata qui: https://askubuntu.com/questions/448926/do-release-upgrade-python-install-is-corrupted