JavaScript設(shè)計(jì)模式之構(gòu)造函數(shù)模式實(shí)例教程
本文實(shí)例講述了JavaScript設(shè)計(jì)模式之構(gòu)造函數(shù)模式。分享給大家供大家參考,具體如下:
一、構(gòu)造函數(shù)模式概念
構(gòu)造函數(shù)用于創(chuàng)建特定類(lèi)型的對(duì)象——不僅聲明了使用過(guò)的對(duì)象,構(gòu)造函數(shù)還可以接受參數(shù)以便第一次創(chuàng)建對(duì)象的時(shí)候設(shè)置對(duì)象的成員值。你可以自定義自己的構(gòu)造函數(shù),然后在里面聲明自定義類(lèi)型對(duì)象的屬性或方法。
在JavaScript里,構(gòu)造函數(shù)通常是認(rèn)為用來(lái)實(shí)現(xiàn)實(shí)例的,JavaScript沒(méi)有類(lèi)的概念,但是有特殊的構(gòu)造函數(shù)。通過(guò)new關(guān)鍵字來(lái)調(diào)用自定義的構(gòu)造函數(shù),在構(gòu)造函數(shù)內(nèi)部,this關(guān)鍵字引用的是新創(chuàng)建的對(duì)象。
二、構(gòu)造函數(shù)模式的作用和注意事項(xiàng)
模式作用:
1.用于創(chuàng)建特定類(lèi)型的對(duì)象
2.第一次聲明的時(shí)候給對(duì)象賦值
3.自己聲明構(gòu)造函數(shù),賦予屬性和方法
注意事項(xiàng):
1.聲明函數(shù)的時(shí)候處理業(yè)務(wù)邏輯
2.區(qū)分和單例的區(qū)別,配合單例實(shí)現(xiàn)初始化
3.構(gòu)造函數(shù)大寫(xiě)字母開(kāi)頭
三、構(gòu)造函數(shù)模式代碼和實(shí)戰(zhàn)總結(jié)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>構(gòu)造函數(shù)模式</title>
</head>
<body>
<!--<script>
function Car(model,year,miles){
if(!(this instanceof Car)){
return new Car(model,year,miles);
}
this.model = model;
this.year = year;
this.miles = miles;
this.output = function(){
return this.model + "走了" + this.miles + "公里";
}
}
var tom = new Car("大叔",2009,20000);
var dudu = Car("Dudu",2010,5000);
console.log(typeof tom);
console.log(tom.output());
console.log(typeof dudu);
console.log(dudu.output());
</script>-->
<script>
//1.用于創(chuàng)建特定類(lèi)型的對(duì)象
//2.這樣的函數(shù)名會(huì)被人笑話
//3.js開(kāi)發(fā)的時(shí)候?qū)憜我?hào)
//4.js里構(gòu)造函數(shù)比較特殊的地方 new
//5.其他的語(yǔ)言里 比如PHP 里人家實(shí)現(xiàn) 有一個(gè)關(guān)鍵字 A class
//6.zaomen就是構(gòu)造函數(shù) 他又充當(dāng)了類(lèi)的概念
var AA = {
zaomen:function(huawen) {
if (!(this instanceof AA.zaomen)) {
console.log(123);
return new AA.zaomen(huawen);
};
var _huawen = "普通";
if (huawen) {
_huawen = huawen;
}
this.suo = "普通";
this.huawen = _huawen;
this.create = function () {
return "【鎖頭】" + this.suo + "【花紋】" + this.huawen;
}
}
};
var BB = {
zaomen:function(huawen,suo) {
if (!(this instanceof BB.zaomen)) {
return new BB.zaomen(huawen,suo);
};
var _huawen = "普通";
if (huawen) {
_huawen = huawen;
}
this._suo = "普通";
if (suo) {
_suo = suo;
}
this.suo = _suo;
this.huawen = _huawen;
this.create = function () {
return "【鎖頭】" + this.suo + "【花紋】" + this.huawen;
}
}
};
/*function zaomen(huawen){
if(!(this instanceof zaomen)){
return new zaomen();
}
var _huawen = "普通";
if(huawen){
_huawen = huawen;
}
this.suo = "普通";
this.huawen = _huawen;
this.create = function(){
return "【鎖頭】" + this.suo + "【花紋】" + this.huawen;
}
}*/
var xiaozhang = AA.zaomen();
alert("xiaozhang" + xiaozhang.create());
var xiaoli = BB.zaomen("絢麗",'123');
alert("xiaoli" + xiaoli.create());
</script>
</body>
</html>
使用在線HTML/CSS/JavaScript代碼運(yùn)行工具 http://tools.jb51.net/code/HtmlJsRun測(cè)試運(yùn)行效果如下:


更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 深入理解JavaScript系列(31):設(shè)計(jì)模式之代理模式詳解
- JavaScript設(shè)計(jì)模式之代理模式詳解
- JavaScript設(shè)計(jì)模式之代理模式介紹
- JavaScript設(shè)計(jì)模式之工廠模式簡(jiǎn)單實(shí)例教程
- JavaScript設(shè)計(jì)模式之單例模式簡(jiǎn)單實(shí)例教程
- JavaScript設(shè)計(jì)模式之建造者模式實(shí)例教程
- JavaScript 設(shè)計(jì)模式 安全沙箱模式
- JavaScript設(shè)計(jì)模式之觀察者模式(發(fā)布者-訂閱者模式)
- JavaScript 設(shè)計(jì)模式之組合模式解析
- JavaScript設(shè)計(jì)模式之代理模式簡(jiǎn)單實(shí)例教程
相關(guān)文章
JavaScript使用DeviceOne開(kāi)發(fā)實(shí)戰(zhàn)(三)仿微信應(yīng)用
這篇文章主要介紹了JavaScript使用DeviceOne開(kāi)發(fā)實(shí)戰(zhàn)(三)仿微信應(yīng)用的相關(guān)資料,需要的朋友可以參考下2015-12-12
詳解JavaScript中關(guān)于this指向的4種情況
這篇文章主要介紹了JavaScript中關(guān)于this指向的4種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
JS實(shí)現(xiàn)的打字機(jī)效果完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的打字機(jī)效果,結(jié)合完整實(shí)例形式分析了javascript定時(shí)觸發(fā)自定義函數(shù)模擬打字輸出效果的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-06-06
小程序?qū)崿F(xiàn)人臉識(shí)別的項(xiàng)目實(shí)踐
人臉識(shí)別在現(xiàn)在很多地方都可以用的到,例如支付,解鎖等,本文就來(lái)介紹一下小程序?qū)崿F(xiàn)人臉識(shí)別,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
基于aotu.js實(shí)現(xiàn)微信自動(dòng)添加通訊錄中的聯(lián)系人功能
這篇文章主要介紹了利用aotu.js實(shí)現(xiàn)微信自動(dòng)添加通訊錄中的聯(lián)系人,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
js跨域和ajax 跨域問(wèn)題的實(shí)現(xiàn)思路
大家都知道js是不能跨域的,但我們有時(shí)候就要這么用,怎么辦呢?辦法總是有的.2009-09-09

