js單例模式

2021-10-09 17:26:10 字數 2928 閱讀 7921

1.html**

<

!doctype html>

"en"

>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

*

form

.item

.item label

.item input

.item span

<

/style>

<

/head>

="item"

>

使用者名稱<

/label>

"usernameinput" type=

"text"

/>

"usernametips"

>

<

/span>

<

/div>

="item"

>

密碼<

/label>

"passwordinput" type=

"password"

/>

"passwordtips"

>

<

/span>

<

/div>

<

/form>

"qf.js"

>

<

/script>

var usernameinput = document.

getelementbyid

("usernameinput");

var usernametips = document.

getelementbyid

("usernametips");

var passwordinput = document.

getelementbyid

("passwordinput");

var passwordtips = document.

getelementbyid

("passwordtips");

var strategy =

(function()

$/;return checkword7t19.

test

(value)?""

:"請輸入長度為7~19位的組合字元,由數字、字母、下劃線組成,不能以數字開頭"},

checkword7t16

(value)$/;

return checkword7t16.

test

(value)?""

:"請輸入長度為7~16位的組合字元,由數字、字母、下劃線組成,不能以數字開頭"}}

return

,// 使用

use(name, value)}}

)();

// 使用者如果無法找到對應的滿意的策略 我們也可以允許使用者自己新增

strategy.

add(

"checkemail"

,function

(value)

@\w\.\w$/

;return reg.

test

(value)?""

:"請輸入格式正確的郵箱";}

);// 繫結 onblur 事件

usernameinput.

onblur

=function()

usernametips.style.color =

"green"

; usernametips.innerhtml =

"√";

} passwordinput.

onblur

=function()

passwordtips.style.color =

"green"

; passwordtips.innerhtml =

"√";

}// 第乙個問題: 改** 不好改

// 第二個問題: 如果有多個表單在同乙個頁面 正規表示式沒法復用

<

/script>

<

/body>

<

/html>

2.js**

這裡面是乙個立即執行函式 所以這個立即執行函式中返回了乙個函式 而這個函式又返回了先new好的例項 在返回之前又先呼叫了這個例項的方法 所以就實現了單例 即乙個類只能建立乙個一樣的物件

var tips =

(function()

init()

// 建立結構

create()

// 更改提示文字

update

(msg ="")

// 新增樣式

render()

for(

var i in domobj)

var topobj =

for(

var i in topobj)

var bottomobj =

for(

var i in bottomobj)

var buttonobj =

for(

var i in buttonobj)

}bindevent()

}uptree()

show()

hide()

}var instance =

newtips()

;return

function

(msg)})

();

js單例模式

今天進一步了解了js單例模式,下面說一下我的理解。在實際問題中,我們在js檔案中宣告過多的函式和全域性變數,或者匯入多個js檔案,都可能導致全域性變數的命名衝突問題。單例模式要求類只能例項化一次並且提供例項的全域性介面。通過單例模式,我們可以為某些方法和屬性規劃乙個命名空間來解決問題。比較簡單的單例...

JS設計模式 單例模式

單例模式是乙個用來劃分命名空間並將一批屬性和方法組織在一起的物件,如果它可以被例項化,那麼它只能被例項化一次。單例模式優點 並非所有的物件字面量都是單例,比如模擬資料基本結構 let cat 上面物件字面量結構是建立單例模式的方法之一,但並不是單例模式,單例模式的特點是僅被例項化一次 要實現單例模式...

JS設計模式 單例模式

理解 單例即只能例項乙個物件,無論new多少次,new出來的都是同乙個物件 這裡用了閉包儲存了instance變數,用於判斷是否已經建立了例項,建立了則直接返回,否則new乙個例項返回 單例模式 const grilfriend function let instance null return f...