JavaScript的灵活性

看《JavaScript设计模式》一书第一章过后,感觉JavaScript确实是现在最活跃的语言。
下面来说说它的灵活。我们平时做验证表单功能基本上会这么写:
function checkName(){
//验证姓名
}
function checkEmail(){
//验证邮箱
}
function checkPassword(){
//验证密码
}
按照上面写运行肯定是没有问题的,但从变量的最少定义来看,上面定义了三个全局变量,可能你会问:”我没有定义变量呀!”。
但函数是不是变量呢!
所以用一个对象来写,把其它方法放在里面。
var checkObject={
checkName:function(){
//验证姓名
},checkEmail:function(){
//验证邮箱
},checkPassword:function(){
//验证密码
}
};

那么问题来了,如果我想复用这个对象呢!(比如别人想调用你的对象来验证信息)
怎么办!
于是代码如下:
var checkObject=function(){
return {
checkName:function(){
//验证姓名
},checkEmail:function(){
//验证邮箱
},checkPassword:function(){
//验证密码
}
}
};
检测邮箱可以如下面
var a=checkObject();
a.checkEmail();
虽然创建了新对象,但是返回出来的对象本身就与checkObject对象无关,所以修改如下:
var checkObject=function(){
this.checkName=function(){
//验证姓名
}
this.checkEmail=function(){
//验证邮箱
}
this.checkPassword=function(){
//验证密码
}
};
上面这样的对象可以看成是类,既然是类,我们用new来创建
var a=new checkObject();
a.checkEmail();
通过this定义,新创建的对象都会有自己的一套方法,然而有时候这么做会造成的消耗是很奢侈的,我们需要处理一下。
var checkObject=function(){};
checkObject.prototype.checkName=function(){
//验证姓名
};
checkObject.prototype.checkEmail=function(){
//验证邮箱
};
checkObject.prototype.checkPassword=function(){
//验证密码
};
有一点要记住,原型链和this这两种方式不能混着用,一旦混用,则会出现覆盖。
通过上述例子可以看出JavaScript的灵活定义方式。
那么我们换一种方式使用,比如说函数式调用方式:
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();
是不是现在感觉JavaScript是一门艺术。那么欢迎你已经进入了JavaScript的海洋。
JavaScript是一种灵活的语言,所有你可以编写出更多优雅的艺术代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值