方法名称 | 前缀命名空间 | 对象命名空间 | IIFE立即执行函数表达式 |
---|---|---|---|
代码 | var moduleA_a = 0; function moduleA_methodA(){...} | var moduleB = { b:0, methodB:function(){...} | var moduleC = (function(){ var c=0; function methodC(){...} return { methodC:methodC } })(); |
优点 | 1.有效防止命名冲突 | 1.有效防止命名冲突 2.有效防止变量污染 | 1.有效防止命名冲突 2.有效防止变量污染 3.能创建私有作用域,自定义暴露属性和接口 |
缺点 | 1.仍然有大量全局变量 | 1.产生‘嵌套对象命名空间’,调用代码变长 2.所有属性和方法都会暴露,没有私有变量 | 暂无 |
总结 | 治标不治本 | 还是有问题 | 暂无问题 |
JavaScript命名空间
最新推荐文章于 2023-11-26 02:09:01 发布