今天遇到web开发,因前端同事离职,只能自己来开发前端了 ,想封装些公共方法,方便其他模块调用。
1,封装对象方式
var hs = {
baseurl:"12gggg",
login:function(){
return 333;
},
keeplive:function(){
return 123;
},
}
外部调用:console.log("1-"+hs.baseurl);
console.log("1-"+hs.keeplive());
结果如图:
2.封装方法
function tt(){
this.a="aaa";
console.log("tt init..");
this.b=function(){
console.log("bbbb");
return "bb";
};
}
外部调用:console.log("init--------------------"+new tt().a);
console.log("init--------------------"+new tt().b());
结果如图:
this.a,this.b() 叫做tt实例的特权属性/方法。但有个问题:每个实例的同名特权方法都要重新创建。
因此可以采用原型链的方式:
tt.prototype.c=function(){
console.log("cc");
return "cc";
};
这种方法每个实例的特权方法都是动态共享的。但每个实例都没有自己的私有变量。
下面采用了组合的方式:
function tt(){
this.a="aaa";
console.log("tt init..");
this.b=function(){
console.log("bbbb");
return "bb";
};
tt.prototype.c=function(){
console.log("cc");
return "cc";
};
}
在实际项目里,根据需求采用相应的方法即可: