JavaScript创建命名空间的多种玩法
程序员文章站
2022-03-16 15:40:57
...
在JavaScript
中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,所以为了避免全局变量名
冲突,创建命名空间
成为最优解。
1.通过闭包(Closure)和Object实现
在闭包中声明好所有变量和方法,并通过一个JSON
Object
返回公有接口:
var NameSpace = NameSpace || {}; NameSpace.Hello = (function() { //待返回的公有对象 var self = {}; //私有变量或方法 var name = 'world'; //公有方法或变量 self.sayHello = function(_name) { return 'Hello ' + (_name || name); } ; //返回的公有对象 return self; }());
2.通过JSON对象创建Object,代码如下:
var NameSpace = NameSpace || {}; NameSpace.Hello = { name: 'world' , sayHello: function(_name) { return 'Hello ' + (_name || this.name); } };
3.通过函数(function)创建:(较为复杂)
这是一种比较常见的写法,通过声明一个function
实现,函数里设置初始变量,公共方法写入prototype
,如:
var NameSpace = NameSpace || {}; /* Function */ 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)创建:(较为简洁)
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创建对象的多种方式以及优缺点
-
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间,_PHP教程
-
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
-
JavaScript创建命名空间的5种写法
-
JavaScript创建命名空间的5种写法
-
利用MS AJAX注册Javascript命名空间并创建类
-
荐 JavaScript5种对象的命名属性创建(含测试源码)
-
javascript 面向对象(多种创建对象的方式)
-
JavaScript创建命名空间(namespace)的最简实现_javascript技巧
-
JavaScript创建命名空间的5种写法_php技巧