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/
其中一個解法是: 透過命名空間區分相同的方法名稱,
實際做法是: 在物件中放不同的屬性, 在屬性中再放置方法,恩, 難懂, 那舉例吧:
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/
留言
張貼留言