如何在 CoffeeScript 中定义全局变量?
您的 CoffeeScript 代码编译为 JavaScript,无需 var 语句,自动将所有变量插入到防止泄漏到全局名称空间。要有意定义全局变量,必须将它们指定为全局对象的属性。
浏览器中的“将它们作为属性附加到窗口”
浏览器的全局对象是窗户。要定义全局变量,请使用:
window.foo = 'baz';
Node.js
Node.js 缺少 window 对象。相反,它有一个导出对象传递到封装模块的包装器中。对于 Node.js,请使用:
exports.foo = 'baz';
同时针对 CommonJS 和浏览器
CoffeeScript 文档建议使用以下代码来针对 CommonJS 和浏览器:
root = exports ? this
这会检查是否定义了导出(Node.js),如果为 true,则将其分配给 root,否则分配浏览器的全局对象(窗口)。
在 Node.js 中,您可以直接分配给导出对象,该对象由 require 函数返回。但是,在 CoffeeScript 中,使用以下内容定义全局函数:
root = exports ? this root.foo = -> 'Hello World'
这会将函数 foo 分配给全局命名空间,无论您是在浏览器中还是使用 Node.js。
以上是如何在 CoffeeScript 中定义全局变量?的详细内容。更多信息请关注PHP中文网其他相关文章!