//所有浏览器都支持 window 对象,它表示浏览器窗口。
//所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
//全局变量是 window 对象的属性。
//全局函数是 window 对象的方法。

// 目的:在window对象下注册一个l_calculate对象,提供加减乘除的功能
//打造JavaScript命名空间其实很简单,只需要将自己的函数、对象、变量等放在一个伪命名空间中,即用一个匿名函数包装起来。
//这种伪命名空间可以封装并保护自己的所有函数、对象、变量,而且由于他们位于一个函数之中,相互之间也可以互相访问。不过伪命名空间之外的脚本就无法使用这些函数了。
(
function(){ function plus(num1,num2) { return (num1+num2); }; function minus(num1,num2) { return (num1-num2); } function times(num1,num2) { return (num1*num2); } function divide(num1 ,num2) { return (num1/num2); } // 为了使这些函数可以被伪命名空间之外的脚本调用,我们首先创建一个window对象
//然后将要全局化的函数重命名一下(也可以不重命名)赋给window对象window[["l_calculate"]。
//将l_calculate命名空间注册到winow对象上 window["l_calculate"] = {}; //将函数注册到l_calculate命名空间下 window["l_calculate"]["plus"]=plus; window["l_calculate"]["minus"]=minus; window["l_calculate"]["times"]=times; window["l_calculate"]["divide"]=divide; })(); //测试代码
var
value = l_calculate.plus(3,2); alert(value); value = l_calculate.minus(3,2); alert(value); value = l_calculate.times(3,2); alert(value); value = l_calculate.divide(3,2); alert(value);

 

//更漂亮的做法1
(function(){
   var NAMESPACE = 'l_calculate';
      
   function plus(num1,num2)
   {
        return (num1+num2);
   };
   
   function minus(num1,num2)
   {
       return (num1-num2);
   }
   
   function times(num1,num2)
   {
       return (num1*num2);
   }
   
   function divide(num1 ,num2)
   {
       return (num1/num2);
   }
    
    //注册命名空间与函数
    window[ NAMESPACE ] = {
        plus:
            function(num1, num2){ return plus(num1,num2);},
            
        minus:
            function(num1, num2){ return minus(num1,num2);},
            
        times:
            function(num1, num2){ return times(num1,num2);},
            
        divide:
            function(num1, num2){ return divide(num1,num2);}

    };
     
})();  

//测试代码
var value = l_calculate.plus(3,2);
alert(value);
value = l_calculate.minus(3,2);
alert(value);
value = l_calculate.times(3,2);
alert(value);
value = l_calculate.divide(3,2);
alert(value);
//更漂亮的做法2
(function(){
   var NAMESPACE = 'l_calculate';
   //注册命名空间与函数
    window[ NAMESPACE ] = {
        plus:
            function(num1, num2){ return (num1+num2);},
            
        minus:
            function(num1, num2){ return (num1-num2);},
            
        times:
            function(num1, num2){ return (num1*num2);},
            
        divide:
            function(num1, num2){ return (num1/num2);}

    };
     
})();  

//测试代码
var value = l_calculate.plus(3,2);
alert(value);
value = l_calculate.minus(3,2);
alert(value);
value = l_calculate.times(3,2);
alert(value);
value = l_calculate.divide(3,2);
alert(value);

 

posted on 2013-02-03 14:18  用心听世界  阅读(182)  评论(0)    收藏  举报