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

Develop Prestashop Module - puntata 1 creazione di un modulo prestashop

la creazione o lo sviluppo di un modulo   Prestashop funziona sia per il front-end che il back-end del sistema la struttura di un modulo è fissa che si compone con una serie di step: file di configurazione file di installazione files controllers per l'amministrazione files controllers per il frontend files delle view creazione dell'infrastruttura base del modulo per Frontend all'interno della cartella modules di prestashop creare una cartella  esempio     <root>          |---modules                    |-----miomodulo naturalmente il nome del modulo lo potete personalizzare all'interno della cartella miomodulo  creare i seguenti file config.xml index.php miomodulo .php   <-- inserite il vostro nome modulo al posto di mio modulo index.php il codice di index php , file che dovrà essere inserito in ogni cartella : <?php /* ...

Vue.js inline component

title: Componente Vue.js inline browser tags: vue.js, single file component vue.js Come creare un componente con Vue.js? Come crearlo e come usarlo direttamente nella pagine? Mi trovo in diversi progetti a bisticciare con jquery che ritengo un ottimo tool, ma non supremo. In ogni progetto possono esistere più tecnologie per risolveere problemi diversi. La SPA la preferisco con React o Angular, ma per creare dei componenti ad hoc o uso Polymer o Vue. Senza scomodare l’intero scaffolding di progetto è possibile creare un semplice componente ed usarlo nella pagina del browser senza fare il transpiling. Come iniziare. Preparo la base di folder. Come server uso quello integrato in php. mkdir vuewjs cd vuejs php -S localhost:8080 touch index.html google-chrome index.html Io uso Ubuntu e quelli sopra sono semplici comandi shell che creano un folder vuejs e dentro creano un file html e avviano il server presente in php7; infine apro con chrome la pagina index.hml. Pagina base Ora prep...