表单验证的几种表现方式
-
1.创建全局变量(不建议用)
function checkName(){ //验证姓名 } function checkEmali(){ //验证邮箱 } function checkPassword(){ //验证姓名 }
在javascript中函数也是变量,这里申明了3个全局变量,如果变人也定义了相同的方法,就会覆盖掉之前的方法
-
2防止函数覆盖解决方案
var CheckObject = { checkName: function(){ //验证姓名 }, checkEmali: function(){ }, checkPassword: function(){ } }
对象有属性和方法,我们要访问他的属性和方法可以通过点语法向下查询,这样我们就可以创建一个检测对象,然后把我们的方法放在里面。我们如果想要检测姓名,就可以这样
CheckObject.checkName();
-
3.可复制使用的表示形式
var CheckObject = function(){ return { checkName: function(){ //验证姓名 }, checkEmali: function(){ }, checkPassword: function(){ } } }
这样,当每次调用这个函数的时候就会把之前的写的那个对象返回出来,每次调用这个函数都会返回一个新对象,这样每个人在使用时就不会互相影响了。检测的时候就可以这样:
var a = CheckObject();
a.checkEmali();
但是,在这里虽然我们通过创建了一个新对象完成了我们的需求,但是他不是一个真正意义上的类创建方式,并且创建的对象a和对象CheckObject无关,是一个假对象,所以我们可以这样改进
-
4.类创建方式
var CheckObject = function(){ this.checkName = function(){ //验证姓名 } this.checkEmali = function(){ } this.checkPassword = function(){ } }//检测 var a = new CheckObject(); a.checkName();
防止对新建的对象多次书写,可以在你声明的每个方法后面将当前对象(this)返回:
var CheckObject = {
checkName: function(){
//验证姓名
return this;
},
checkEmali: function(){
//
return this;
},
checkPassword: function(){
//
return this;
}
}
这样我们在使用的时候就可以这样:
CheckObject.checkName().checkEmali().checkPassword();
-
5.链式添加方式
var methods = function(){}; methods.addmethods('checkName',function(){ //验证姓名 }).addmethods('checkEmali',function(){ }).addmethods('checkPassword',function(){ });
在使用的时候不能直接使用,需通过new关键词来创建新对象
var m = new methods();
m.checkEmali();
总结
我们很多初学者通常在编写代码时,只会想到实现其功能就可以了,而通常不会去想别人在看自己的代码或是在用自己的代码时的影响。但是我们在做项目的过程中,往往需要与队友之间的默契合作,那么我们在编写代码时就不只是要考虑功能问题,还应该考虑质量问题,怎样的代码格式才能让我们的队友或是自己更好的重复使用和方便维护是很重要的。