JS设计模式学习笔记一:对象收编变量 检测类

1.1函数基本形式(全局变量)

     function checkName(){    //验证姓名
    } 
     function checkEmail(){  //验证邮箱
    }
     function checkPassword(){ //验证密码
    }

1.2函数的另一种形式 (全局变量)

   var checkName =function(){   //验证姓名
   }
   var checkEmail = function(){  //验证邮箱
   }
   var checkPassword=function(){ //验证密码
   } 

上面声明了多个函数也就是多个全局变量,当多人协作时,如果别人也定义了同样的方法或者自己定义了很多方法,就容易存在被覆盖的风险,且这种相互覆盖的问题是不容易察觉的。所以可以将它们放在一个变量里保存,这样就可以减少覆盖或被覆盖的风险,当然一旦被覆盖所有的功能都会失效,但这种现象很明显也容易察觉。

1.3 用对象收编变量:
可以创建一个检测对象,然后把函数方法放在里面:

   var CheckObject={
     checkName: function(){  //验证姓名
     },
     checkEmail:function(){  //验证邮箱
     },
     checkPassword:function(){ //验证密码
     }
}  

这里我们将所有函数作为CheckObject 对象的方法,这样我们就只有一个对象,而我们要想使用它们也很简单,比如检测姓名CheckObejct.checkName(),只是在我们原来使用的函数式前面多了个对象名称。

1.4 对象的另一种形式:
在JS中函数也是一种对象,所以可以有如下写法:

 var CheckObject = function(){};
 CheckObject.checkName = function(){
    //验证姓名
}
 CheckObject.checkEmail = function(){
   //验证邮箱
}
 CheckObject.checkPassword=function(){
  //验证密码
} 

使用和前面的方式是一样的,比如CheckObject.checkName(),但这个对象类在用new 关键字创建新的对象时,新创建的对象是不能继承这些方法的。

1.5 真假对象
如果想简单得复制对象,可以将这些方法放在一个函数对象中:

  var CheckObject = function(){
  return {
     checkName:function(){
     //验证姓名
     },
     checkEmail:function(){
     //验证邮箱
     },
     checkPassword:function(){
      //验证密码
     }
   }
}

var a = CheckObject();
a.checkEmail();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章