欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-02 09:37:30
...

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

相关标签: js