Pembolehubah Global: Mengapa Mereka Bermasalah dan Cara Mencari Alternatif
Pembolehubah global telah dikritik secara meluas dalam JavaScript kerana potensinya untuk konflik kod dan pencemaran ruang nama. Jika anda mencari penyelesaian alternatif, pertimbangkan pilihan berikut:
Corak Modul
Corak ini merangkumi pembolehubah dan fungsi dalam satu pembolehubah global, mengurangkan risiko pertembungan nama .
// Define a module var FOO = (function() { // Private variables and functions here return { // Public functions and methods accessible outside the module }; })();
Untuk mengakses fungsi awam, gunakan FOO.
Argumen dan Penutupan
Jika fungsi perlu berkongsi data tetapi tidak bergantung pada pembolehubah global, pertimbangkan untuk meluluskan hujah atau menggunakan penutupan. Penutupan membenarkan fungsi mengakses pembolehubah yang ditakrifkan dalam skop luar, walaupun selepas skop luar telah ditamatkan.
// Function assign value to a variable function f(name) { var variable = name; return function() { // Inner function returns value of variable return variable; }; } // Create a function that returns the value of variable var ret = f("value"); alert(ret()); // Output: "value"
Corak Singleton
Corak Singleton memastikan bahawa hanya satu contoh sesuatu kelas dicipta. Ini boleh memberi manfaat untuk situasi di mana berbilang fungsi memerlukan akses kepada pembolehubah yang dikongsi:
// Singleton class var Singleton = (function() { var instance; function getInstance() { if (!instance) { instance = new Object(); } return instance; } return { getInstance: getInstance }; })(); // Get instance of class var globalVars = Singleton.getInstance(); // Set variable in instance globalVars.variable = "value"; // Access variable later alert(globalVars.variable); // Output: "value"
Ingat bahawa alternatif ini mempunyai kelebihan dan kekurangannya sendiri. Memilih pilihan yang sesuai bergantung pada keperluan khusus permohonan anda.
Atas ialah kandungan terperinci Pembolehubah Global dalam JavaScript: Apakah Alternatif Wujud untuk Mengelak Konflik dan Pencemaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!