//工厂
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("生成一瓶可乐,多少钱:" + price);
}
} //生产线
FruitMaker.prototype.make = function (water, price) {
try {
var func = this[water];
func.prototype = FruitMaker.prototype;
return new func(price);
} catch (error) {
console.log("很抱歉, 公司暂时不能生产" + water + "这种果汁, ....");
}
} var maker = new FruitMaker();
var cocoCola = maker.make("cococola", "3.1");
console.log(cocoCola);
var xuebi = maker.make("xuebi", "3.2");
console.log(xuebi); var fenda = maker.make("fenda", "3.3");
console.log(fenda);

如果需要开发新产品(这里 ->芬达)

  //生产线(新开发产品)
FruitMaker.prototype.extend = function (obj) {
for (var key in obj) {
this[key] = obj[key];
}
};

调用的时候:

  maker.extend({
"fenda": function coco(price) {
console.log("生成一瓶fenda,多少钱:" + price);
}
}); var fenda = maker.make("fenda", "3.3");
console.log(fenda);

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

  1. 浅析JavaScript工厂模式

    这里主要介绍两种工厂模式,第一种“简单工厂模式”,第二种“工厂方法模式” 简单工厂模式 1.定义 由一个工厂对象决定对象创建某一种产品对象的的实例.主要用来创建同一类对象. 2.具体需求 现在有一个登 ...

  2. javascript工厂模式和构造函数模式创建对象

    一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创 ...

  3. javascript工厂模式

    工厂模式 设计工厂模式的目的是为了创建对象.它通常在类或者类的静态方法实现,具有下列目标: 1.在创建相似对象是执行重复操作 2.在编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接口 ...

  4. javascript工厂模式、单例模式

    //工厂模式 function createObject(name,age){ var obj = new Object(); obj.name = name; obj.age = age; obj. ...

  5. JavaScript 工厂模式和订阅模式

    设计模式的好处: 代码规范 // 例如表单验证,两个 input ,一个用户名,一个密码 // 通常做法是 function checkUser(){ //..... } function check ...

  6. JavaScript工厂模式代码

    function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayNam ...

  7. js工厂模式和构造函数

    <!DOCTYPE html><html><head> <title>工厂模式和构造函数</title> <meta charset ...

  8. javascript 设计模式-----工厂模式

    所谓的工厂模式,顾名思义就是成批量地生产模式.它的核心作用也是和现实中的工厂一样利用重复的代码最大化地产生效益.在javascript中,它常常用来生产许许多多相同的实例对象,在代码上做到最大的利用. ...

  9. javascript模式 (3)——工厂模式和装饰模式

    上节我们讲解了单例模式,这节我们将继续讲解工厂模式和迭代器模式 工厂模式: 工厂模式的目的是为了方便的创建对象(可以在不知道构造的情况下),通过静态方法来实现,在java或c#等静态编译语言中需要通过 ...

随机推荐

  1. MAC安装配置maven环境变量

    1.下载maven包: 下载链接:

  2. php fsockopen()方法,简化,异步非阻塞调用

    介绍在项目中遇到一个问题,就是php是同步的读取下来的,如果一个方法请求的时间长了一点, 那么整个程序走下去将会遇到阻塞,现在我想触发这个方法,但是又不影响我下下面的程序正常的走下去.查了一上午的方法 ...

  3. 【Docker】Docker容器中安装vim命令

    1)先执行 apt-get update 2) 再执行 apt-get install vim

  4. Windows平台 python环境配置

    下载python:https://www.python.org/downloads/windows/,一般就下载 executable installer,x86 表示是 32 位机子的,x86-64 ...

  5. 纯数据结构Java实现(8/11)(Trie)

    欢迎访问我的自建博客: CH-YK Blog.

  6. python应用-传入年月日 输出为一年的第几天

    ef leap_year(year): return (year//4==0 and year//100!=0) or (year //400==0) def which_day(year,month ...

  7. 学习:Lucas定理

    模板题 在数论中,Lucas定理用于计算二项式系数\({\tbinom {m}{n}}\)被质数\(p\)除的所得的余数. 描述 设\(p\)为素数,\(a,b\in N_+\),且 \[a=a_kp ...

  8. JMeter【第一篇】jmeter5.1在windows(含插件安装)及linux环境下安装

    jmeter下载 前提:已经安装jdk8+ jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi 有Binaries和Source版本 前者是 ...

  9. async/await 和 trycatch/throwable机制类似

    async/await 和 trycatch/throwable机制类似

  10. 第1章 Spring的应用

    一.Spring 的两种核心容器:BeanFactory 和 ApplicationContext(都通过xml加载Bean的) 二.通过ApplicationContext实例化: 1.通过Clas ...