- 为了避免变量之间的冲突,使用对象收编变量
var CheckObject = {
checkName: function(){},
checkEmail: function(){},
checkPassword:function(){}
}
这样,我们把三个变量,checkName,checkEmail,checkPassword变成了对象CheckObject的三个属性了,可读性和维护性也提高了。
当然,这个对象是直接访问的,不能复制。即不能使用new关键字创建,我们对上面这个写法再深入一下。
var CheckObject = function(){
this.checkName = function(){}
this.checkEmail = function(){}
this.checkPassword = function(){}
}
var a = new CheckObject();
a.checkEmail();
这样每次创建新对象,新创建的对象就会对类的this上的属性进行复制。所以这些创建的对象都会有自己的一套方法。
这种写法的缺陷是造成资源的浪费。
- 引入原型链prototype
将方法绑定再原型链上
var CheckObject = function(){};
CheckObject.prototype = {
checkName : function(){},
checkEmail: function(){},
checkPassword: function(){}
}
var a = new CheckObject();
a.checkName();
再JavaScript里面this只的是当前对象。所以,我们在方法体最后return this。的话,就可以实现链式调用了。
- 源生对象
对象类:Function,Array,Object…..
可以在对象类的原型上绑定我们要使用的方法,调用起来更方便。当然,最好抽取下。
Function.prototype.addMethod = function(name,fn){
this[name] = fn;
return this;
}
var methods = new Function();
或
var methods = function(){}
methods.addMethod('checkName',function(){}).
addMethod('checkEmail',function(){});
methods.checkName();
通过这些写法,可以编写出优雅的代码