javascript-简单工厂两种实现方式
简单工厂笔记
两种方式:
第一种:通过实例化对象创建
第二种:通过创建一个新对象然后包装增强其属性和功能来实现
差异性:前一种通过类创建的 对象,如果这些类继承同一个父类,他们父类原型上的方法是可以共用的;后一种通过寄生方式创建的对象都是一个新的个体,所以他们的方法就不能共用了
第一种和第二种都 以生产足球、篮球、网球为例子
第一种方式
- var Basketball = function(){
- this.intro = '篮球盛行于美国';
- }
- Basketball.prototype={
- getMember:function(){
- console.log("每个队伍需要5名队员")
- },
- getBallSize:function(){
- console.log("篮球很大");
- }
- }
- var Football = function(){
- this.intro="足球在全世界范围类很流行";
- }
- Football.prototype={
- getMember:function(){
- console.log("每个队伍需要11名队员")
- },
- getBallSize:function(){
- console.log("足球很大");
- }
- }
- var Tennis = function(){
- this.intro="每年有很多网球系列赛";
- }
- Tennis.prototype={
- getMember:function(){
- console.log("每个队伍需要1名队员")
- },
- getBallSize:function(){
- console.log("网球很小");
- }
- }
- //第一种球工厂
- var ballFactory=function(name){
- switch(name){
- case 'basketball':
- return new Basketball();
- case 'football':
- return new Football();
- case 'tennis':
- return new Tennis();
- }
- }
第一种简单工厂测试代码
- //第一种测试
- var football=ballFactory("football");
- console.log(football.intro);
- football.getMember();
- football.getBallSize();
第二种简单工厂
- 1 //第二种
- function createBall(type,intro,num,ballsize){
- var o = new Object();
- o.intro = intro;
- o.num = num;
- o.ballsize = ballsize;
- o.getMember = function(){
- //公共方法getNember
- console.log("每个队伍需要"+this.num+"名队员");
- }
- o.getBallSize = function(){
- //公共方法getBallSize
- console.log(this.ballsize);
- }
- if(type == 'basketball'){
- //篮球差异部分
- }
- if(type=="football"){
- //足球差异部分
- }
- if(type=="tennis"){
- //网球差异部分
- }
- return o;
- }
第二种简单工厂测试
- //第二种测试
- var football2=createBall("football","足球在全世界范围类很流行",11,"足球很大");
- console.log(football2.intro);
- football2.getMember();
- football2.getBallSize();
javascript-简单工厂两种实现方式的更多相关文章
- JavaScript脚本的两种放置方式
JavaScript脚本的两种放置方式 1在body里用 script标签引用 2 直接写在<script></script>标签之中
- JavaScript 函数的两种声明方式
1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...
- javascript中对象两种创建方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 软件公司的两种管理方式 总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 Widget Factory(小商品工厂) 和 Film Crews(电影工作组
软件公司的两种管理方式 一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水和会和职位的层次绑在一起”.但是,这个答案同时也折射出一个事实——我们的薪资是基于我们的所理解的价值,但这并没有 ...
- struts2+spring的两种整合方式
也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...
- 面向面试编程——javascript对象的几种创建方式
javascript对象的几种创建方式 总共有以下几个模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.混合构造函数和原型模式 5.动态原型模式 6.寄生构造函数模式 7.稳妥构造函数模式 1 ...
- Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式
封面:洛小汐 作者:潘潘 一直以来 他们都说为了生活 便追求所谓成功 顶级薪水.名牌包包 还有学区房 · 不过 总有人丢了生活 仍一无所获 · 我比较随遇而安 有些事懒得明白 平日里问心无愧 感兴趣的 ...
- Web APi之认证(Authentication)两种实现方式【二】(十三)
前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...
- Java多线程13:读写锁和两种同步方式的对比
读写锁ReentrantReadWriteLock概述 大型网站中很重要的一块内容就是数据的读写,ReentrantLock虽然具有完全互斥排他的效果(即同一时间只有一个线程正在执行lock后面的任务 ...
- Ajax中的get和post两种请求方式的异同
Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别. 1. get是把参数数据队列加到提交表单的A ...
随机推荐
- iOS 阶段学习第22天笔记(JSON数据格式介绍)
iOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)UR ...
- C++: read access data using ADOX.DLL and System::Data::OleDb
#pragma once #include "Form2.h" namespace cdemo { using namespace System; using namespace ...
- API 开发实践
整个2015年,如果要给自己打上一个标签的话,那应该就是 API. 在各个不同的系统中定制各种 API 框架. 在做商城对接各种电商 ERP 的 API 开发中,我采用的是兼容SHOPEX 的 API ...
- 2016暑假多校联合---Windows 10
2016暑假多校联合---Windows 10(HDU:5802) Problem Description Long long ago, there was an old monk living on ...
- PostgreSQL获取年月日
1.获取当前日期的年份 select to_char(t.detect_date,'YYYY') select extract(year from now())为double precision 格式 ...
- 用java实现新浪爬虫,代码完整剖析(仅针对当前SinaSignOn有效)
先来看我们的web.xml文件,如下 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application ...
- ThinkCMF-幻灯片制作
在后台的扩展工具 -> 幻灯片分类 添加分类标识为"portal_index"的分类,然后在此分类添加幻灯片. 个人认为,此处可以用于: 1. 门户网站的首页幻灯片播放功能: ...
- SDRAM,DRAM,SRAM,DDR的概念
一:SDRAM SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输 ...
- 「轉」Java的内存机制
0.参考资料: http://www.j2megame.org/index.php/content/view/2246/125.html 1.Java的内存机制 Java 把内存划分成两种:一种是栈内 ...
- JVM的生命周期、体系结构、内存管理和垃圾回收机制
一.JVM的生命周期 JVM实例:一个独立运行的java程序,是进程级别 JVM执行引擎:用户运行程序的线程,是JVM实例的一部分 JVM实例的诞生 当启动一个java程序时.一个JVM实例就诞生了, ...