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 相关文章推荐
javascript入门基础之私有变量
Feb 23 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
js判断客户端是iOS还是Android等移动终端的方法
Dec 11 Javascript
js制作简易年历完整实例
Jan 28 Javascript
JavaScript Array对象详解
Mar 01 Javascript
深入理解JS实现快速排序和去重
Oct 17 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 Javascript
js实现常见的工具条效果
Mar 02 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 Javascript
vue-router的两种模式的区别
May 30 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自定义函数收代码
2010/08/01 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
jQuery把表单元素变为json对象
2013/11/06 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
运动会通讯稿400字
2014/01/28 职场文书
婚前财产公证书
2014/04/10 职场文书
学前班评语大全
2014/05/04 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
雷锋的观后感
2015/06/10 职场文书
执行力心得体会范文
2016/01/11 职场文书
导游词之西递宏村
2019/12/10 职场文书