Maison >interface Web >js tutoriel >Comment gérez-vous les variables globales dans CoffeeScript pour Node.js et le navigateur ?

Comment gérez-vous les variables globales dans CoffeeScript pour Node.js et le navigateur ?

DDD
DDDoriginal
2024-11-29 19:03:13389parcourir

How do you manage global variables in CoffeeScript for both Node.js and the browser?

Variables globales dans CoffeeScript : attachement à une fenêtre ou à des exportations

CoffeeScript, dépourvu d'instruction var, l'inclut automatiquement pour les variables, empêchant ainsi les fuites dans l'espace de noms global. Pour accéder délibérément à cet espace de noms, les variables doivent être définies en tant que propriétés de l'objet global.

Attachement à la fenêtre dans le navigateur

Dans le navigateur, l'objet global est window . Par conséquent, pour attribuer une propriété, vous pouvez utiliser une syntaxe telle que :

window.foo = 'baz';

Gestion des variables globales dans Node.js

Node.js n'a pas de service dédié objet fenêtre. Au lieu de cela, il contient des exportations, qui sont transmises au module encapsulé. Ainsi, pour Node.js, la mission devient :

exports.foo = 'baz';

Cibler à la fois CommonJS et le navigateur

La documentation CoffeeScript suggère d'utiliser ce qui suit :

root = exports ? this

Ceci vérifie si les exportations sont définies (vrai dans Node.js) et l'attribue à root si elle existe. Sinon, il l'attribue à root (vrai dans le navigateur).

Appel de la fonction

Dans CoffeeScript, vous pouvez écrire :

root.foo = -> 'Hello World'

Cela déclarera la fonction foo dans l'espace de noms global, quel que soit l'environnement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn