浅析JavaScript工厂模式】的更多相关文章

这里主要介绍两种工厂模式,第一种“简单工厂模式”,第二种“工厂方法模式” 简单工厂模式 1.定义 由一个工厂对象决定对象创建某一种产品对象的的实例.主要用来创建同一类对象. 2.具体需求 现在有一个登录模块,当用户的输入的用户名多于16个时,给一个警示弹窗 var LoginAlert = function(text) { this.content = text } LoginAlert.prototype.show = function() { //显示警示框 } var userNameAl…
一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节,如下面的例子所示. function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.s…
工厂模式 设计工厂模式的目的是为了创建对象.它通常在类或者类的静态方法实现,具有下列目标: 1.在创建相似对象是执行重复操作 2.在编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接口. 通过工厂方法(或类)创建的对象在设计上都继承了相同的父对象这个思想,它们都是实现专门功能的特定子类.有时候公共父类是一个包含了工厂方法的同一个类. 代码: //父构造函数 function CarMaker(){}; CarMaker.prototype.drive = function(){…
//工厂模式 function createObject(name,age){ var obj = new Object(); obj.name = name; obj.age = age; obj.fun = function(){ return this.name + this.age +"一个方法"; } return obj; } ); ); alert(box1.fun()); alert(box2.fun()); //这里的box1和box2都是Object,无法无别类型与…
设计模式的好处: 代码规范 // 例如表单验证,两个 input ,一个用户名,一个密码 // 通常做法是 function checkUser(){ //..... } function checkPassword(){ //..... } // 问题: // 这是两个全局对象,而这两个方法属于一个表单的验证 // 所以这应该是一个表单对象,起码应该这么写 // 对象封装,但是注意全局对象 var checkObj = { checkUser: function() { //..... },…
//工厂 function FruitMaker() { //function 后不带方法名,这里cococola未定义,make return时,返回 FruitMaker.cococola this.cococola = function cococola (price) { console.log("生成一瓶Coca-Cola,多少钱:" + price); } this.xuebi = function xuebi(price) { console.log("生成一瓶…
function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name) }; return o; } //可以无数次调用createPerson函数 var person1=createPerson("GReg",20,"sofwear engineer"); var perso…
<!DOCTYPE html><html><head> <title>工厂模式和构造函数</title> <meta charset = "utf-8"></head><body> <script type="text/javascript">//工厂模式跟构造函数//在js中创建一个对象,然后在创建一个对象,将旧对象赋给新对象并修改新对象中的元素时旧对象中的…
所谓的工厂模式,顾名思义就是成批量地生产模式.它的核心作用也是和现实中的工厂一样利用重复的代码最大化地产生效益.在javascript中,它常常用来生产许许多多相同的实例对象,在代码上做到最大的利用.比如现在有需求是项目中需要创建若干的组件,这些组件分门别类,但是又同属于某些类别下.这个时候我们不需要直接使用new运算符来单个创建,通过简单的代码封装,可以实现创建不同的组件实例.下面我们取简单的例子,创建不同的物种实例. 首先是创建构造函数,区别物种的不同属性. //定义人的构造函数 var m…
上节我们讲解了单例模式,这节我们将继续讲解工厂模式和迭代器模式 工厂模式: 工厂模式的目的是为了方便的创建对象(可以在不知道构造的情况下),通过静态方法来实现,在java或c#等静态编译语言中需要通过反射实现,而javascript这一切会很简单,利用索引访问方法特性,如Coffee[coffeeType](); var Coffee = function (name,price) { this.name = name; this.price = price; } Coffee.createCo…