Untuk menghindari timpa dan konflik antar variabel, namespace dapat dihasilkan. Namespace adalah awalan khusus, yang diimplementasikan melalui objek {} di JS.
Dalam fungsi anonim yang berbeda, namespace yang berbeda dinyatakan sesuai dengan fungsi tersebut. Properti objek global dalam setiap fungsi anonim tidak langsung digantung pada global, tetapi digantung di namespace dari fungsi sub-anonim, seperti:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var global = {}
</script>
<type skrip = "Teks/JavaScript">
(fungsi(){
var a = 123, a1 = 256;
Global.a = {}
Global.a.str = a;
}) ();
</script>
<type skrip = "Teks/JavaScript">
(fungsi(){
var b1 = 123, b2 = 256;
Global.b = {}
Global.b.str = a;
}) ();
</script>
Jika program dalam fungsi anonim yang sama sangat kompleks dan memiliki banyak nama variabel, namespace dapat diperluas lebih lanjut untuk menghasilkan namespace sekunder:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var global = {}
</script>
<type skrip = "Teks/JavaScript">
(fungsi(){
var a = 123, a1 = 256;
Global.a = {};
Global.a.cat = {};
Global.a.dog = {};
Global.a.cat.name = "mini";
Global.a.cat.move = function () {
}
Global.a.dog.name = "mini";
Global.a.dog.move = function () {
}
}) ();
</script>
Karena menghasilkan namespaces adalah fungsi yang sangat umum, fungsi menghasilkan namespace dapat lebih didefinisikan sebagai fungsi untuk panggilan mudah, sebagai berikut:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var global = {}
Global.namespace = function (str) {
var arr = str.split ("."), o = global;
untuk (i = arr [0] == "global"? 1: 0; i <arr.length; i ++) {
o [arr [i]] = o [arr [i]] || {};
o = o [arr [i]];
}
}
</script>
Memanggil operasi spesifik namespace:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
// =================================================================
// Fungsi a
// insinyur a
// Email: [email protected] MSN: [email protected] "
// 2012-11-06
// =================================================================
(fungsi(){
var a = 123, a1 = "hello world";
Global.namespace ("a.cat");
Global.namespace ("a.dog");
Global.a.cat.name = "mini";
Global.a.cat.move = function () {
}
Global.a.dog.name = "mini";
Global.a.dog.move = function () {
}
Global.a.str = a;
Global.a.str1 = a1;
}) ();
Demikian pula, apakah itu pengembangan tim langsung dengan banyak orang atau kerja tim tidak langsung dengan individu, diperlukan pemeliharaan yang baik.
1. Tambahkan komentar kode yang diperlukan
2. Jauhkan JS agar tidak bertentangan, hindari proliferasi variabel global dan gunakan namespace secara wajar