JavaScript設(shè)計(jì)模式之構(gòu)造器模式(生成器模式)定義與用法實(shí)例分析
本文實(shí)例講述了JavaScript設(shè)計(jì)模式之構(gòu)造器模式(生成器模式)定義與用法。分享給大家供大家參考,具體如下:
工廠模式雖然解決了重復(fù)實(shí)例化的問題,但無法識別對象類型。
可以采用構(gòu)造函數(shù)(構(gòu)造方法)可用來創(chuàng)建特定的對象,可以解決工廠模式無法識別對象實(shí)例的問題。也就是說,使用構(gòu)造函數(shù)的方法 ,即解決了重復(fù)實(shí)例化的問題 ,又解決了對象識別的問題。
構(gòu)造器模式與工廠模式的不同之處在于:
① 構(gòu)造函數(shù)方法沒有顯示的創(chuàng)建對象 (new Object());
② 直接將屬性和方法賦值給 this 對象;
③ 沒有 return 語句。
構(gòu)造函數(shù)方法的規(guī)范:
① 函數(shù)名和實(shí)例化構(gòu)造名相同且大寫 (非強(qiáng)制,但有助于區(qū)分構(gòu)造函數(shù)和普通函數(shù));
② 通過構(gòu)造函數(shù)創(chuàng)建對象,必須使用new運(yùn)算符。
function Person(name, age) {
this.name = name;
this.age = age;
this.showName = function() {
alert(this.name);
};
}
var person1 = new Person("Alice", 23);
var person2 = new Person("Bruce", 22);
構(gòu)造器模式的問題:每個方法都要在每個實(shí)例上重新創(chuàng)建一遍。
原因:JavaScript中的函數(shù)是對象,每定義一個函數(shù),就是實(shí)例化了一個Funtion對象,因此,使用構(gòu)造函數(shù)創(chuàng)建的每個實(shí)例都有一個同名的方法,但這些方法不是同一個Function的實(shí)例,因?yàn)椴煌瑢?shí)例上的同名函數(shù)是不相等的。
解決:原型模式,請見://www.dhdzp.com/article/144485.htm
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
- 深入理解JavaScript系列(34):設(shè)計(jì)模式之命令模式詳解
- JavaScript設(shè)計(jì)模式經(jīng)典之命令模式
- JS設(shè)計(jì)模式之命令模式概念與用法分析
- JS命令模式例子之菜單程序
- JavaScript設(shè)計(jì)模式之責(zé)任鏈模式實(shí)例分析
- JavaScript設(shè)計(jì)模式之代理模式實(shí)例分析
- JavaScript設(shè)計(jì)模式之模板方法模式原理與用法示例
- JavaScript設(shè)計(jì)模式之觀察者模式(發(fā)布訂閱模式)原理與實(shí)現(xiàn)方法示例
- JavaScript設(shè)計(jì)模式之工廠模式和抽象工廠模式定義與用法分析
- JavaScript設(shè)計(jì)模式之命令模式實(shí)例分析
相關(guān)文章
最簡單純JavaScript實(shí)現(xiàn)Tab標(biāo)簽頁切換的方式(推薦)
這篇文章主要介紹了最簡單純JavaScript實(shí)現(xiàn)Tab標(biāo)簽頁切換的方式(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07
echarts實(shí)現(xiàn)餅圖與樣式設(shè)置
這篇文章介紹了echarts實(shí)現(xiàn)餅圖與樣式設(shè)置的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06
JavaScript 學(xué)習(xí)小結(jié)(適合新手參考)
JavaScript常量又稱字面常量,是固化在程序代碼中的信息。變量的主要作用是存取數(shù)據(jù),提供一個存取信息的容器。2009-07-07
javascript數(shù)組的定義及操作實(shí)例
在文章里小編給大家整理的是關(guān)于javascript數(shù)組的定義及操作的相關(guān)知識點(diǎn),需要的朋友們學(xué)習(xí)下。2019-11-11
D3.js中data(), enter() 和 exit()的問題詳解
相信大多數(shù)人對D3.js并不陌生。這是一個由紐約時報可視化編輯 Mike Bostock與他斯坦福的教授和同學(xué)合作開發(fā)的數(shù)據(jù)文件處理的JavaScript Library,全稱叫做Data-Driven Documents,在d3.js中data(), enter() 和 exit()比較常見,下面給大家就這方面的知識給大家詳解2015-08-08

