变量、对象、函数、类

来源:互联网 发布:上古卷轴5故事知乎 编辑:程序博客网 时间:2024/04/28 08:57

1.函数的形式

function checkName(){  //定义一个函数}
var checkName=function(){//函数的另一种形式}

2.用对象收编变量

var CheckObject={    checkName:function(){        //验证姓名    },    checkEmail:function(){     //验证邮箱    },    checkPassword:function(){      //验证密码    }}//调用时使用点语法CheckObject.checkName();
//对象的另一种形式var CheckObject=function(){};CheckObject.checkName=function(){   //验证姓名}CheckObject.checkEmail=function(){   //验证邮箱}CheckObject.checkPassword=function(){   //验证密码}
//把所有方法放在一个函数对象中var CheckObject=function(){   return{     checkName:function(){        //验证姓名    },    checkEmail:function(){        //验证邮箱    }    }}//每次调用这个函数时,都返回一个新对象var a=CheckObject();a.checkEmail();

3.因为创建的对象a和对象CheckObject没有任何关系,所以用类对其进行改造

var CheckObject=function(){     this.checkName=function(){      //验证姓名    }    this.checkEmail=function(){    //验证邮箱    }}//使用new创建var a=new CheckObject();a.checkEmail();

特点:所有的方法放在函数内部了,通过this定义,每次通过new关键字创建新对象的时候,新创建的对象都会对类的this上的属性进行复制,因此新创建的对象都有自己的一套方法。
4.方法添加到原型上

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

这次在创建对象实例的时候,创建的对象拥有的方法就是一个了。因为它们都依赖prototype原型一次寻找,而找到的方法都是同一个。

//一种简写方式var CheckObject=function(){};CheckObject.prototype={  checkName:function(){  },  checkEmail:function(){  }}
//使用方式var a=new CheckObject();a.checkName();a.checkEmail();

5.这样,调用几次方法,就要对a写几遍。可以在每个声明的末尾处将当前对象返回,this指向的就是当前对象,可以将其返回。

var CheckObject=function(){};CheckObject.prototype={  checkName:function(){  //验证姓名  return  this;    },  checkEmail:function(){  //验证邮箱  return this;  }}

6.prototype.js是一款JavaScript框架,里面封装了很多方法,最大的特点是对源生的对象(Function,Array,Object等等)拓展,为每个函数添加一个检测邮箱的方法可以这么做

Function.prototype.checkEmail=function(){  //验证邮箱}
//使用函数的调用方式var f=function(){};f.checkEmail();
//使用类的形式var f=new Function();f.checkEmail();

这样会污染源生对象Function,别人的函数也会被你创建的函数所污染,造成不必要的开销,可以抽象出一个统一添加方法的功能

Function.prototype.addMethod=function(name,fn){   this[name]=fn;}//添加邮箱验证的方法var methods=function(){};或者var methods=new Function();//添加方法methods.addMethod('checkEmail',function(){});methods.checkEmail();

如果想链式添加,则通过this返回

Function.prototype.addMethod=function(name,fn){   this[name]=fn;   return this;}var methods=function(){};methods.addMethod('checkName',function(){   //验证姓名   return this;}).addMethod('checkEmail',function(){   //验证邮箱   return this;})methods.checkName().checkEmail();

7.习惯类调用方式

Function.prototype.addMethod=function(name,fn){  this.prototype[name]=fn;}//添加方法var Methods=function(){};Methods.addMethod('checkName',function(){//验证姓名}).addMethod('checkEmail',function(){ //验证邮箱});

使用的时候,必须使用new关键字创建新的对象

var m=new Methods();m.checkEmail()
0 0
原创粉丝点击