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 相关文章推荐
CheckBoxList多选样式jquery、C#获取选择项
Sep 06 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
Nov 12 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 Javascript
详解JS数组Reduce()方法详解及高级技巧
Aug 18 Javascript
javaScript动态添加Li元素的实例
Feb 24 Javascript
JavaScript this绑定过程深入详解
Dec 07 Javascript
JS实现电话号码的字母组合算法示例
Feb 26 Javascript
javascript json对象小技巧之键名作为变量用法分析
Nov 11 Javascript
Node.js API详解之 string_decoder用法实例分析
Apr 29 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文件系统管理(实例讲解)
2017/09/19 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
JS不间断向上滚动效果代码
2013/12/25 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
初学Python实用技巧两则
2014/08/29 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
Structs界面控制层技术
2013/10/11 面试题
前台接待员岗位职责
2014/01/02 职场文书
校庆筹备方案
2014/03/30 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
外联部演讲稿
2014/05/24 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
民事调解书范文
2015/05/20 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle