Ahmad Masykur

Share your knowledge although one function!

About the author

Ahmad Masykur is a Software Architecture Engineer at PT. Freeport Indonesia Jakarta Indonesia.
In this blog, I share things of interest to me. Most topics are likely to be related to software development, but don't hold me to it.

Certificates



Awards


Powered by

Widget Prayer Time not found.

There is an error in XML document (4, 16278).X

Page List

Validators


Ahmad Masykur

Pembuatan Namespace pada JavaScript

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.


Categories: JavaScript
Permalink | Comments (2) | Post RSSRSS comment feed

Comments

cheap auto insurance Serbia | Reply

Saturday, November 22, 2008 2:04 AM

cheap auto insurance

I think for loop exist in this code
Masykur.Ajax.WebService = function(wsdl, async)
{
    this.wsdl = wsdl;
    this.async = async;

    // ...
}

--------------

Busby SEO Test United States | Reply

Thursday, November 27, 2008 11:00 AM

Busby SEO Test

thanks i really enjoy reading your article!!

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading