js设计模式第一章 读书笔记

1、简单的验证js

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

上面的代码,创建了3个全局变量,有可能被别人覆盖,或者把别人的代码覆盖。怎么减少被覆盖的问题呢?如下:

2、用对象收编变量

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

这样还是有问题,用new创建新的对象时,新创建的对象不能继承这些方法。怎么办?如下:

3、类

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

每次new时候会对类的this属性进行复制,但是造成的消耗也很大。怎么解决?如下:

4、原型

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

这样创建出来的对象所拥有的方法就是一个了,因为它们都要依赖 prototype原型依次寻找,而找到的方法都是同一个,它们都绑定在CheckObject对象类的原型上。

请大神多多指教  qq:274501366

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值