Bagaimanakah saya mentakrifkan Pembolehubah Global dalam CoffeeScript?
Kod CoffeeScript anda dikompilasi ke JavaScript tanpa penyataan var, memasukkannya secara automatik untuk semua pembolehubah mengelakkan kebocoran ke ruang nama global. Untuk mentakrifkan pembolehubah global dengan sengaja, anda mesti menetapkannya sebagai sifat objek global.
'Lampirkan mereka sebagai sifat pada tetingkap' dalam Pelayar
Objek global penyemak imbas ialah tingkap. Untuk mentakrifkan pembolehubah global, gunakan:
window.foo = 'baz';
Node.js
Node.js tidak mempunyai objek tetingkap. Sebaliknya, ia mempunyai objek eksport yang dihantar ke pembungkus yang melampirkan modul. Untuk Node.js, gunakan:
exports.foo = 'baz';
Menyasarkan Kedua-dua CommonJS dan Penyemak Imbas
Dokumentasi CoffeeScript mencadangkan kod berikut untuk menyasarkan CommonJS dan penyemak imbas:
root = exports ? this
Ini menyemak sama ada eksport ditakrifkan (Node.js) dan menetapkannya kepada root jika benar, sebaliknya menetapkan objek global penyemak imbas (tetingkap).
Dalam Node.js, anda boleh menetapkan terus kepada objek eksport, yang dikembalikan oleh fungsi memerlukan. Walau bagaimanapun, dalam CoffeeScript, gunakan yang berikut untuk mentakrifkan fungsi global:
root = exports ? this root.foo = -> 'Hello World'
Ini memberikan fungsi foo kepada ruang nama global, tidak kira sama ada anda berada dalam penyemak imbas atau menggunakan Node.js.
Atas ialah kandungan terperinci Bagaimanakah saya menentukan Pembolehubah Global dalam CoffeeScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!