原创

js-实现类似带有命名空间的js写法总结-模块化调用-prototype用法

1、
var common = window.common || {}; //防止window中已有common对象时被替换
common.doSomething = function(argument){
//TODO
}

调用方法
common.doSomething(argument)

2、
var XXXTool = {
init:function(argument){
//TODO
}
}

调用方法
XXXTool.init(argument)

3、prototype用法,详见《js-模块化调用》

var XXXTool = function(Argument){ //可选 相当于构造器
//注意这里的this对象和java中this对象稍有不同,
//把一个对象定义到this上,实际上就和这个this绑定在一起,调用时必须加上this
var _this = this;
_this.aaa = "AAA";

XXXTool.prototype.init=function(argument){
//TODO
//需要使用aaa变量,这需要调用 _this.aaa
}

function _privateFunc(){ //私有方法,禁止外部调用(编程规范)
// invoke init()
_this.init();// 需要加上_this
}
}

调用方法
var XXXTool = new XXXTool(argument1);
XXXTool.init(argument2);

4、立即执行函数传参window.UserInfo = {},对象暴露给UserInfo,详见《js-模块化调用》
(function(user) {

user.getUserInfo = function() {//别错
var stateText = localStorage.getItem('key_xxx_app_UserInfo') || {};
return JSON.parse(stateText);
};

}(window.UserInfo = {}));

调用方法
UserInfo.getUserInfo();

正文到此结束
本文目录