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 constructor和instanceof,JSOO中的一对欢喜冤家
May 25 Javascript
JavaScript执行效率与性能提升方案
Dec 21 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 Javascript
javascript简单判断输入内容是否合法的方法
May 11 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
vue.js中mint-ui框架的使用方法
May 12 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 Javascript
layui多图上传实现删除功能的例子
Sep 23 Javascript
JS 数组基本用法入门示例解析
Jan 16 Javascript
vue中watch和computed的区别与使用方法
Aug 23 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 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
Vue指令指令大全
2019/02/09 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
python分数表示方式和写法
2019/06/26 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
Python reques接口测试框架实现代码
2020/07/28 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
高中生毕业学习总结的自我评价
2013/11/14 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
个人课题方案
2014/05/08 职场文书
学校校庆演讲稿
2014/05/22 职场文书
中学生打架检讨书
2014/10/13 职场文书
2015年环保局工作总结
2015/05/22 职场文书
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python