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

Droidcon Italia

A Febbraio arriva in Italia il Droidcon! Questo il programma della giornata: 6 febbraio 8:30 – 9:15 Registration 9:15 – 9:50 Welcome 9:50 – 13:00 Conferences 13:00 – 14:00 Lunch 14:00 – 18:00 Conferences / Barcamp 7 febbraio 9:50 – 13:00 Conferences / Workshops 13:00 – 14:00 Lunch 14:00 – 18:00 Conferences / Workshops 18:00 – 18:30 Closing Questo il link del Droidcon   http://it.droidcon.com/2014/ A breve maggiori informazioni sui talk, hackathon, codelab :)

chromeapp - interazione con il browser - 1

ora che sappiamo come creare una semplice applicazione su chrome, possiamo introdurre l'interazione con chrome tramite le sue api in questo capitolo creeremo una semplice estensione chrome per effettuare lo screenshot di una pagina web api tutte le api di chrome iniziano con... chrome.* utilizzeremo: chrome.tabs chrome.extension chrome.tab con chrome.tab.* possiamo gestire una serie di azioni ed eventi dei tab di chrome: creare, aggiornare etc.. con chrome.extension.*  avremo accesso ad alcune informazioni e file dell'estensione che abiamo creato flusso il flusso di funzionamento è semplice: l'utente effettua un click sull'estensione l'utente effettua un click sul pulsante screenshot chrome effettua l'immagine del tab attivo chrome crea un nuovo tab con l'immagine creata semplice no? :P