眾所周知乙個頁面可能會被很多人開發,那麼這時候就有乙個問題,那就是命名的重複(變數,函式名),所以為了解決這個問題,命名空間就應用而生了。
可以先看如下**:
var org = ,
jerry:
},groupb
}} org.groupa.jerry.name
那麼此時可以發現,如果要使用某個變數,那麼要層層呼叫,但是這回很麻煩,所以為了更好的使用變數,可以使用臨時變數來代替,如下:
var jname = org.groupa.jerry.name
但是這也不是解決問題的根本,所以為了根本解決這個問題,就要用到閉包
var init =(function ()
function say***()
return function ()
}())
var x = init();
此時把乙個要在全域性執行的變數放到了乙個區域性裡面,所以避免了命名衝突而造成的**汙染。
另外一種解決方法就是使用with
var name = '222';
var a =
}var b =
}with(a)
JS命名空間
命名空間namespace 某些語言中叫package 是乙個在靜態語言中常見的概念。它可以幫助我們更好地整理 並可避免命名衝突。舉乙個簡單的例子,如果有兩個人都叫小明,我們很難區分和引用這兩個人。但如果我們在他們前面加上命名空間,比如 北京的小明和上海的小明,那麼區分起來就容易的多了,也不會因為重...
JS命名空間(namespace)
命名空間namespace 某些語言中叫package 是乙個在靜態語言中常見的概念。它可以幫助我們更好地整理 並可避免命名衝突。舉乙個簡單的例子,如果有兩個人都叫小明,我們很難區分和引用這兩個人。但如果我們在他們前面加上命名空間,比如 北京的小明和上海的小明,那麼區分起來就容易的多了,也不會因為重...
JS實現命名空間
作者 zhanhailiang 日期 2012 10 24在新增乙個屬性或者建立乙個命名空間之前,最好是首先檢查它是否已經存在,如下例 if typeof hwsl undefined 或者使用 的短路功能 var hwsl hwsl 但是這些附加的檢查會迅速產生大量重複的 如果想定義hwsl.cu...