JavaScript物件導向-- 命名空間(Namespace)

如果今天, 一份或多份script中有相同的function名稱, 會導致覆蓋(override)結果, 怎麼辦?

其中一個解法是: 透過命名空間區分相同的方法名稱,

實際做法是: 在物件中放不同的屬性, 在屬性中再放置方法,恩, 難懂, 那舉例吧:


e.g.

//相同名稱的函式會被覆蓋

function getUser() {

    console.log("a");

}

function getUser() {

    console.log("b");

}

getUser();                                                          // "b", "a"被蓋掉了


//透過命名空間區分相同的方法名稱

var ns = {};
ns.common = {};
ns.custom = {};
ns.common.getUser = function() {

    console.log("a");

};

ns.custom.getUser = function() {

    console.log("b");

};

ns.common.getUser();                                      // "a"
ns.custom.getUser();                                        // "b"



最後, 如果要看更實際、深入的使用和舉例:
http://www.codedata.com.tw/uncategorized/essential-javascript-19-namespace/




留言

熱門文章