Javascript面向对象设计一 工厂模式


Posted in Javascript onDecember 20, 2011

1、工厂模式抽象了创建具体对象的过程,但是在ECMAScript中无法创建类,所以就使用一种函数来封装以特定接口创建对象的细节。以一下情况为例,
有一个员工类,有姓名、年龄、职位属性,

function CreateEmployee(name, age, job) { 
var Emp = new Object(); 
Emp.name = name; 
Emp.age = age; 
Emp.job = job; 
Emp.sayName = function () { 
alert(this.name); 
}; 
return Emp; 
}

使用以上方法定义两个员工,Jim,Sun
var Jim = CreateEmployee("jim", 22, "SoftWare Engineer"); 
var Sun = CreateEmployee("Sun",24,"Doctor");

然后分别使用SayName方法,让两位员工报上名来
Jim.sayName(); 
Sun.sayName();

函数CreateEmployee可以根据参数来构建一个包含必要信息的Employee对象,可以无限次的调用这个函数。工厂模式虽然解决了创建多个相似对象的问题,但是却没有解决怎样知道一个对象类型的问题。
Javascript 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
jQuery实现的类flash菜单效果代码
May 17 Javascript
jqPlot 基于jquery的画图插件
Apr 26 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
jQuery实现延迟跳转的方法
Jun 05 Javascript
JavaScript每天定时更换皮肤样式的方法
Jul 01 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 Javascript
微信小程序学习之数据处理详解
Jul 05 Javascript
Vue实现按钮旋转和移动位置的实例代码
Aug 09 Javascript
JavaScript实现英语单词题库
Dec 24 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 Javascript
用JavaScript仿PS里的羽化效果代码
Dec 20 #Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 #Javascript
五段实用的js高级技巧
Dec 20 #Javascript
更换select下拉菜单背景样式的实现代码
Dec 20 #Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
Dec 20 #Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
Dec 20 #Javascript
createElement与createDocumentFragment的点点区别小结
Dec 19 #Javascript
You might like
验证坐标在某坐标区域内php代码
2016/10/08 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
浅析javascript的return语句
2015/12/15 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
RequireJS用法简单示例
2018/08/20 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
Windows下为Python安装Matplotlib模块
2015/11/06 Python
python下10个简单实例代码
2017/11/15 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
python下载库的步骤方法
2019/10/12 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
django ORM之values和annotate使用详解
2020/05/19 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
决定成败的关键——创业计划书
2014/01/24 职场文书
ktv中秋节活动方案
2014/01/30 职场文书
活动总结报告范文
2014/05/04 职场文书
党内外群众意见范文
2015/06/02 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python
Mysql事务索引知识汇总
2022/03/17 MySQL