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 相关文章推荐
jquery select(列表)的操作(取值/赋值)
Mar 16 Javascript
JavaScript中的稀疏数组与密集数组[译]
Sep 17 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
May 08 Javascript
javascript强大的日期函数代码分享
Sep 04 Javascript
举例详解JavaScript中Promise的使用
Jun 24 Javascript
JavaScript实现点击单元格改变背景色的方法
Feb 12 Javascript
瀑布流的实现方式(原生js+jquery+css3)
Jun 28 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 Javascript
Angular2中select用法之设置默认值与事件详解
May 07 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
用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/03 咖啡文化
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
表单提交验证类
2006/07/14 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
js运动事件函数详解
2016/10/21 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
理解python中生成器用法
2017/12/20 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
Python中的单行、多行、中文注释方法
2018/07/19 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python面向对象封装操作案例详解
2019/12/31 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
python 通过exifread读取照片信息
2020/12/24 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
创业计划书如何吸引他人眼球
2014/01/10 职场文书
机关保密承诺书
2014/06/03 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
个人培训总结
2015/03/05 职场文书
上级领导检查欢迎词
2015/09/30 职场文书