放假逛书城看到一本关于js设计模式的书,翻了两页发现很感兴趣于是乎开啃。现在记录啃书心得。
第一章js中的面向对象。
js是一门非常灵活的语言,不同的人可以写出不同风格的代码,但是在团队开发中需要尽量保证团队开发代码风格的一致。这样才可以提高团队代码易开发、可维护以及代码规范的必然要求。话不多说,贴代码。
<meta charset = "utf-8">
<script type="text/javascript">
// 封装函数
var CheckObject = {
CheckName : function(){
alert("名字");
},
CheckEmail : function(){
alert("账号");
},
CheckPassword : function(){
alert("密码");
}
}
//var test = new CheckObject.CheckName();
//------------------------------------------------
var CheckObject1 = function(){};
CheckObject1.checkName = function(){
alert("名字1");
}
//var test1 = new CheckObject1.checkName();
//------------------------------------------------
var CheckObject2 = function(){
return {
checkName : function(){
alert("名字2");
}
}
}
var test2 = new CheckObject2();
// test2.checkName();
//------------------------------------------------
var CheckObject3 = function(){
this.checkName = function(){
alert("名字3");
}
}
var test3 = new CheckObject3();
// test3.checkName();
//------------------------------------------------
// prototype可理解为function的公共方法
var CheckObject4 = function(){};
CheckObject4.prototype = {
checkName : function(){
alert("名字4");
},
CheckEmail : function(){
alert("邮箱4");
}
}
var test4 = new CheckObject4();
// test4.checkName();
// test4.CheckEmail();
//------------------------------------------------
// 链式调用
var CheckObject5 = function(){};
CheckObject5.prototype = {
checkName : function(){
alert("名字5");
return this;
},
CheckEmail : function(){
alert("邮箱5");
return this;
}
}
var test5 = new CheckObject5();
// test5.checkName().CheckEmail();
//------------------------------------------------
// 添加公共方法
Function.prototype.addMethod = function(name,fn){
this[name] = fn;
}
var methods = function(){};
methods.addMethod("checkName",function(){
alert("名字6");
return this;
});
methods.addMethod("CheckEmail",function(){
alert("邮箱6");
return this;
});
// methods.checkName().CheckEmail();
//------------------------------------------------
// 链式添加公共方法
Function.prototype.addMethod = function(name,fn){
this[name] = fn;
return this;//!!!
}
var methods = function(){};
methods.addMethod("checkName",function(){
alert("名字7");
return this;
}).addMethod("CheckEmail",function(){//!!!
alert("邮箱7");
return this;
});
methods.checkName().CheckEmail();
</script>