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