生成命名空间函数
我们在写js代码的时候,常常会因为全局变量而产生冲突。为了避免全局变量的冲突问题,我们可以构造一个生成命名空间的函数。具体代码如下:
<script type="text/javascript"> var GLOBAL = {}; GLOBAT.namespace = function(str){ var arr = str.split('.'),o = GLOBAT; for(i=(arr[0] == 'GLOBAT') ? 1 : 0; i<arr.length; i++){ o[arr[i]] = o[arr[i]] || {}; o = o[arr[i]]; } } </script> <script type="text/javascript"> (function(){ GLOBAT.namespace('A.CAT'); GLOBAT.namespace('A.DOC'); GLOBAT.A.CAT.name = 'sisi'; GLOBAT.A.DOC.name = 'wangcai'; })(); </script>
其中要注意的是,o=GLOBAT; 就相当与给GLOBAL取了一个别名,对o添加属性的同时GLOBAT也跟着变化了。
所有Object对象都有这样的性质。