1. 程式人生 > >js設計模式第一章 讀書筆記

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