Dalam CoffeeScript, ketiadaan pernyataan var khusus bermakna semua pembolehubah secara tersirat diisytiharkan sebagai setempat. Ini menghalang kebocoran secara tidak sengaja ke dalam ruang nama global semasa penyusunan kepada JavaScript.
Untuk menentukan pembolehubah global, anda perlu menetapkannya sebagai sifat kepada objek global.
Dalam penyemak imbas, objek global ialah objek tetingkap. Untuk mencipta pembolehubah global bernama foo, anda akan menulis:
window.foo = 'baz'
Dalam Node.js, objek global tidak tersedia sebagai tetingkap . Sebaliknya, anda harus menetapkan pembolehubah global kepada objek eksport:
exports.foo = 'baz'
Dokumentasi CoffeeScript mencadangkan menggunakan pembolehubah akar untuk menentukan objek global yang sesuai berdasarkan sama ada eksport ditakrifkan (yang berlaku dalam Node.js) atau tidak (yang membayangkan penyemak imbas persekitaran):
root = exports ? this root.foo = 'baz'
Ungkapan ternary ini memberikan akar kepada eksport jika eksport ditakrifkan, dan kepada ini (konteks global dalam Node.js, atau tetingkap dalam penyemak imbas) sebaliknya.
root = exports ? this root.foo = -> 'Hello World'
Kod ini mengisytiharkan fungsi global bernama foo dalam sama ada Node.js (melalui eksport) atau pelayar (melalui tetingkap) objek global.
Atas ialah kandungan terperinci Bagaimanakah anda Mentakrifkan Pembolehubah Global dalam CoffeeScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!