Comment puis-je définir des variables globales en CoffeeScript?

Sur Coffeescript.org:

bawbag = (x, y) ->
    z = (x * y)

bawbag(5, 10) 

serait compiler:

var bawbag;
bawbag = function(x, y) {
  var z;
  return (z = (x * y));
};
bawbag(5, 10);

la compilation via coffee-script sous node.js enveloppe la sorte:

(function() {
  var bawbag;
  bawbag = function(x, y) {
    var z;
    return (z = (x * y));
  };
  bawbag(5, 10);
}).call(this);

Docs disent:

Si vous souhaitez créer des variables globales pour d'autres scripts à utiliser,
joindre en tant que propriétés de la fenêtre, ou sur les exportations de l'objet dans
CommonJS. Les existentielle de l'opérateur (ci-dessous), vous donne un
moyen fiable de déterminer où les ajouter, si vous ciblez les deux
CommonJS et le navigateur: root = exportations ? cette

Comment puis-je définir des Variables Globales puis en CoffeeScript. Qu'est-ce que les joindre en tant que propriétés dans la fenêtre " signifie pour vous?

  • Notez que l'utilisation de variables globales est mauvais, c2.com/cgi/wiki?GlobalVariablesAreBad, et même considéré comme nocif, c2.com/cgi/wiki?GotoConsideredHarmful. Et il n'y a vraiment aucune raison de les utiliser en JavaScript à tous, comme vous l'avez d'excellentes fonctionnalités, comme les fermetures qui peut résoudre la plupart des problèmes que vous utilisez des variables globales à résoudre.
  • Alors que je suis d'accord avec vous, ici, dans certains cas, il est nécessaire de créer une centrale d'application de l'objet et ont des modules être attaché à elle.
  • centrale objets peuvent être enregistrés en vigueur de l'état global des objets, comme le window objet ou de la exports objet. pas besoin de créer des variables globales.
  • les variables globales sont enregistrés en tant que propriétés de l' window (ou global sur nodejs) objet
  • Ouais, c'est pas l'insta-mauvais d'avoir un mondial var. Juste une mauvaise pratique de tuyau de votre application vers le bas avec eux à la légère. Déclarant l'un et en l'utilisant comme un adaptateur d'usine comme jQuery ou d'un espace de noms est vraiment pratique courante.