當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript 面向对象编程(工厂模式、构造函数模式、原型模式)
生活随笔
收集整理的這篇文章主要介紹了
javascript 面向对象编程(工厂模式、构造函数模式、原型模式)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
javascript 面向?qū)ο缶幊?#xff08;工廠模式、構(gòu)造函數(shù)模式、原型模式)
CreateTime--2018年3月29日17:09:38
Author:Marydon
一、工廠模式
/*** 工廠模式*/ function factoryFunction() {// 1.創(chuàng)建一個Object對象(人)var person = new Object();// 或者 var person = {};// 2.對象的屬性(對應(yīng)人的特征)person.name = "Marydon";person.qq = "2982586911";person.website = "www.cnblogs.com/Marydon20170307";// 3.對象的方法(對應(yīng)人的行為)person.operation = function() {alert("正在演示工廠模式"); };return person; }調(diào)用:
factoryFunction().operation();適用場景:
個人不推薦使用,因為構(gòu)造函數(shù)模式完全可以取代。?
二、構(gòu)造函數(shù)模式
/*** 構(gòu)造函數(shù)模式* @注意:首字母要大寫,用于和普通函數(shù)區(qū)分*/ function ConstructorFunction() {this.name = "Marydon";this.qq = "2982586911";this.website = "www.cnblogs.com/Marydon20170307";// 這個兩個this指的是同一對象哦!this.operation = function() {alert(this.name); };}調(diào)用:
// 創(chuàng)建對象,對象創(chuàng)建后,該對象里面的this指的就是cf var cf = new ConstructorFunction(); cf.operation();// 彈出Marydon適用場景:?
個人比較推薦使用
三、原型模式
/*** 原型模式* @注意:使用前,必須實例化*/ function prototypeFunction() {}; prototypeFunction.prototype.name = "Marydon"; prototypeFunction.prototype.qq = "2982586911"; prototypeFunction.prototype.website = "www.cnblogs.com/Marydon20170307";prototypeFunction.prototype.operation = function() {alert("正在演示原型模式"); };調(diào)用:
// 不能這樣直接調(diào)用 // prototypeFunction().operation(); // 必須得先創(chuàng)建這個對象 var pf = new prototypeFunction();適用場景:?
給已經(jīng)存在的對象添加方法時使用
比如:String對象沒有trim()方法,Date對象沒有format()方法,對其進行自定義封裝時,需要用到。
四、還用一種經(jīng)常使用?
/*** 使用JSONObject創(chuàng)建*/ var jsonObjectFunction = {name :"Marydon",qq : "2982586911",website : "www.cnblogs.com/Marydon20170307",operation : function() {alert("正在演示JSON對象"); }};調(diào)用:
// 直接調(diào)用 jsonObjectFunction.operation();適用場景:?
比較典型的就是ajax函數(shù)對象,另外,許多封裝的插件也是使用的這種方式。?
五、結(jié)語
很多時候需要混合使用,最常見的是:構(gòu)造函數(shù)+原型函數(shù) 模式
?
轉(zhuǎn)載于:https://www.cnblogs.com/Marydon20170307/p/8671419.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的javascript 面向对象编程(工厂模式、构造函数模式、原型模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Object.definePropert
- 下一篇: BZOJ.1032.[JSOI2007]