//所有浏览器都支持 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);