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切换功能的简单方法
Nov 23 Javascript
jquery取消选择select下拉框示例代码
Feb 22 Javascript
javascript 闭包详解
Feb 15 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
Jun 01 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
jQuery模拟select实现下拉菜单功能
Jun 20 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
Vue.js自定义事件的表单输入组件方法
Mar 08 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
React优化子组件render的使用
May 12 Javascript
返回上一个url并刷新界面的js代码
Sep 12 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
如何选购合适的收音机
2021/03/01 无线电
我的论坛源代码(十)
2006/10/09 PHP
深入解析php模板技术原理【一】
2008/01/10 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python实现飞机大战小游戏
2019/11/08 Python
Python读写压缩文件的方法
2020/07/30 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
函授本科毕业自我鉴定
2013/10/09 职场文书
实习生体会的自我评价范文
2013/11/28 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
生日宴会祝酒词
2015/08/10 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript