javascript:namespace

来源:互联网 发布:怎么进入淘宝分销平台 编辑:程序博客网 时间:2024/05/20 07:19
(function(){ 
    function $(id){ 
        return document.getElementById(id); 
    } 
    function alertNodeName(id){ 
        alert($(id).nodeName); 
    } 
})(); 

    使用这种伪命名空间可以封装并保护自己的所有函数、对象、变量,而且由于他们位于一个函数之中,相互之间也可以互相访问。不过伪命名空间之外的脚本就无法使用这些函数了。

  为了使这些函数可以被伪命名空间之外的脚本调用,我们首先创建一个window对象:

  if(!window.myNamespace)

{

window['myNameSpace']={};

}

然后将要全局化的函数重命名一下(也可以不重命名)赋给window对象window['myNameSpace']:

  window['myNameSpace']['showNodeName'] = alertNodeName; 
 
 详细代码:

(function(){ 
    if(!window.myNamespace){window['myNameSpace']={};} 
    function $(id){ 
        return document.getElementById(id); 
    } 
    function alertNodeName(id){ 
        alert($(id).nodeName); 
    } 
    window['myNameSpace']['showNodeName'] = alertNodeName; 

})(); 


调用:

   function Test(){ 
  myNameSpace.showNodeName("T"); 
 } 


完整代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
 <HEAD> 
  <TITLE></TITLE> 

<script type="text/javascript">


(function(){
function $(id){return document.getElementById(id);}
function nodeName(id){alert($(id).nodeName);}

if(!window.myNameSpace){window["myNameSpace"] = {};}
//window['myNameSpace'] = {}; 

//window[name][name] = functionName
window["myNameSpace"]["showNodeName"] = nodeName;

})();

function findNode(x){myNameSpace.showNodeName(x);}

</script>


<body onload="findNode('put')">
<p id="put">dwef</p>
</body>
</html>


 


0 0
原创粉丝点击