通过闭包(Closure)和Object实现 命名空间
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> NameSpace.Hello6 </title> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <script type="text/javascript"> // //通过闭包(Closure)和Object实现 // //Function的简洁写法 // //这是一种比较简洁的实现,结构紧凑,通过function实例,且调用时无需实例化(new),方案来自stackoverflow: // var NameSpace = window.NameSpace || {}; NameSpace.Hello = new function() { var self = this; var name = 'world'; self.sayHello = function(_name) { return 'Hello ' + (_name || name); }; }; alert(NameSpace.Hello.sayHello()); alert(NameSpace.Hello.sayHello('Jim')); </script> </body> </html>
//////////////////////////////////////////
//new function(){} -> {}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> NameSpace.Hello6_2 </title>
<meta charset="UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<script type="text/javascript">
//
//通过闭包(Closure)和Object实现
//
//Function的简洁写法
//
//这是一种比较简洁的实现,结构紧凑,通过function实例,且调用时无需实例化(new),方案来自stackoverflow:
//
var NameSpace = window.NameSpace || {};
NameSpace.Hello = {
self:this,
name:'world',
sayHello : function(_name) {
return 'Hello ' + (_name || this.name);
},
};
alert(NameSpace.Hello.sayHello());
alert(NameSpace.Hello.sayHello('Jim'));
</script>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> NameSpace.Hello3 </title> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <script type="text/javascript"> // //通过闭包(Closure)和Object实现 // //在闭包中声明好所有变量和方法,并通过一个JSON Object返回公有接口: var NameSpace = window.NameSpace || {}; NameSpace.Hello = (function() { //待返回的公有对象 var self = {}; //私有变量或方法 self.name = 'world'; //公有方法或变量 self.sayHello = function(_name) { return 'Hello ' + (_name || this.name); }; //返回的公有对象 return self; } ()); alert(NameSpace.Hello.sayHello()); alert(NameSpace.Hello.sayHello('Jim')); </script> </body> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> NameSpace.Hello4 </title> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <script type="text/javascript"> // //通过闭包(Closure)和Object实现 // //在闭包中声明好所有变量和方法,并通过一个JSON Object返回公有接口: var NameSpace = window.NameSpace || {}; NameSpace.Hello = (function() { //待返回的公有对象 var self = {}; //私有变量或方法 var name = 'world'; //公有方法或变量 self.sayHello = function(_name) { return 'Hello ' + (_name || name); }; //返回的公有对象 return self; } ()); alert(NameSpace.Hello.sayHello()); alert(NameSpace.Hello.sayHello('Jim')); </script> </body> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> NameSpace.Hello5 </title> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <script type="text/javascript"> // //通过闭包(Closure)和Object实现 // //Object和闭包的改进型写法 // //上个例子在内部对公有方法的调用也需要添加self,如:self.sayHello(); 这里可以最后再返回所有公有接口(方法/变量)的JSON对象。 // var NameSpace = window.NameSpace || {}; NameSpace.Hello = (function() { var name = 'world'; var sayHello = function(_name) { return 'Hello ' + (_name || name); }; return { sayHello: sayHello }; } ()); alert(NameSpace.Hello.sayHello()); alert(NameSpace.Hello.sayHello('Jim')); </script> </body> </html>

浙公网安备 33010602011771号