Namespace digunakan untuk mencegah adanya penamaan objek yang sama oleh vendor yang berlainan. Misalkan microsoft menggunakan objek dengan nama Ajax dan vendor lain juga menggunakan objek dengan nama Ajax, maka jika kedua library disatukan dalam satu aplikasi akan terjadi konflik antara kedua objek tersebut. Untuk mencegah kejadian ini diperlukan namespace antara produk satu dengan lainnya. Pada JavaScript tidak ada fitur khusus untuk menangani namespace namun kita dapat membuat objek bertingkat menggunakan JavaScript yang diperlakukan seperti namespace.
Berikut adalah script yang digunakan untuk membuat namespace pada JavaScript.
if (!window.Masykur) {
window.Masykur = {};
}
Masykur.registerNamespace = function (ns)
{
var nsParts = ns.split(".");
var root = window;
for(var i=0; i<nsParts.length; i++) {
if(typeof root[nsParts[i]] == "undefined") {
root[nsParts[i]] = new Object();
}
root = root[nsParts[i]];
}
}
Penggunaan fungsi tersebut di atas adalah.
Masykur.registerNamespace("Masykur.Ajax.Utilities");
Masykur.Ajax.Utilities.RegisterCallback = function(e, callback)
{
// ...
}
Masykur.Ajax.WebService = function(wsdl, async)
{
this.wsdl = wsdl;
this.async = async;
// ...
}
// contoh penggunaan
var ws = new Masykur.Ajax.WebService(http://.../service1.asmx?WSDL, true);
ws.onready = function(res)
{
alert(res.value);
}
ws.ServerAdd(21, 2);
Dengan menggunakan namespace, masing-masing library dari vendor yang berlainan dapat menggunakan nama vendor sebagai root namespace mereka.