本文摘自PHP中文网,作者逆旅行人,侵删。

在JavaScript
中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,所以为了避免全局变量名
冲突,创建命名空间
成为最优解。
1.通过闭包(Closure)和Object实现
在闭包中声明好所有变量和方法,并通过一个JSON
Object
返回公有接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var NameSpace = NameSpace || {};
NameSpace.Hello = ( function () {
var self = {};
var name = 'world' ;
self.sayHello = function (_name) {
return 'Hello ' + (_name || name);
} ;
return self;
}());
|
2.通过JSON对象创建Object,代码如下:
1 2 3 4 5 | var NameSpace = NameSpace || {};
NameSpace.Hello = { name: 'world' , sayHello: function (_name) {
return 'Hello ' + (_name || this.name);
}
};
|
3.通过函数(function)创建:(较为复杂)
这是一种比较常见的写法,通过声明一个function
实现,函数里设置初始变量,公共方法写入prototype
,如:
1 2 3 4 5 6 7 8 9 10 | var NameSpace = NameSpace || {};
NameSpace.Hello = function () {
this.name = 'world' ;
};
NameSpace.Hello.prototype.sayHello = function (_name) {
return 'Hello ' + (_name || this.name);
};
var hello = new NameSpace.Hello();
hello.sayHello();
|
4.通过函数(function)创建:(较为简洁)
1 2 3 4 5 6 7 8 | var NameSpace = NameSpace || {};
NameSpace.Hello = new function () {
var self = this;
var name = 'world' ;
self.sayHello = function (_name) {
return 'Hello ' + (_name || name);
};
};
|
推荐:《2021年js面试题及答案(大汇总)》
以上就是JavaScript创建命名空间的多种玩法的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript怎么判断是否为数字类型
javascript就是js吗
javascript中使用for...in 和object.keys()枚举对象属性的差异(附代码)
javascript中array什么意思
javascript怎么实现弹出窗口
如何理解javascript中的函数概念
javascript怎么实现禁止缩放
js动态添加带圆圈序号列表方法的精讲
javascript:世界上最被误解的语言
javascript诞生于哪一年
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » JavaScript创建命名空间的多种玩法