命名空间模式:
- 优点:可以解决命名混乱和第三方冲突;
- 缺点:长嵌套导致更长的查询时间;更多的字符;
- 通用命名空间函数:
var MYAPP = MYAPP || {}; MYAPP.namespace = function (ns_string) { var parts = ns_string.split(‘.‘); parent = MYAPP; if(parts[0] === ‘MYAPP‘) { parts = parts.slice(1); } for(var i = 0; i < parts.length; i++) { if(typeof parent[parts[i]] === ‘undefined‘) { parent[parts[i]] = {}; } parent = parent[parts[i]]; } return parent; } var module2 = MYAPP.namespace(‘MYAPP.modules.module2‘);
- 声明依赖关系:虽然已经进行了模块化命名,但再声明依赖能更优化
如对于:MYAPP, MYAPP.util.Event, MYAPP.util.Dom; //在一个函数或模块顶部进行声明 var myFunc = function() { var event = MYAPP.util.Event; var dom = MYAPP.util.Dom; ................ }
解析局部变量的速度比解析全局变量快;
- 私有属性和特权方法
function Gadget() { var name = ‘iPod‘; this.getName = function () { return name; } }
注意,如果私有属性设置是一个对象,且只读,那么不要将它直接返回,而是返回其浅复制后的副本;
时间: 2024-11-20 09:28:09