CoffeeScript でグローバル変数を定義するにはどうすればよいですか?
CoffeeScript コードは var ステートメントなしで JavaScript にコンパイルされ、すべての変数に var ステートメントが自動的に挿入されます。グローバル名前空間への漏洩を防ぎます。グローバル変数を意図的に定義するには、それらをグローバル オブジェクトのプロパティとして割り当てる必要があります。
ブラウザで「ウィンドウのプロパティとして追加」
ブラウザのグローバル オブジェクト窓です。グローバル変数を定義するには、次を使用します。
window.foo = 'baz';
Node.js
Node.js にはウィンドウ オブジェクトがありません。代わりに、モジュールを囲むラッパーに渡されるエクスポート オブジェクトがあります。 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'
これにより、ブラウザーを使用しているか Node.js を使用しているかに関係なく、関数 foo がグローバル名前空間に割り当てられます。
以上がCoffeeScript でグローバル変数を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。