js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象
1、Factory基本写法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简单工厂模式之一个对象有时候可以代替许多类</title>
<script type="text/javascript">
//简单工厂模式之一个对象有时候可以代替许多类
//工厂模式
function createBook(name,time,type){
//封装一个对象,并对该对象拓展其属性和方法
var o = new Object();
//var o = {};
o.name = name;
o.time = time;
o.type = type;
o.getName = function(){
console.log(this.name);//this指向当前对象o
}
return o;//将对象o返回出去
}
//测试用例
var jsbook = createBook('js book',2015,'js');
var cssbook = createBook('css book',2014,'css');
jsbook.getName();
cssbook.getName();
//本例已经通过验证
</script>
</head>
<body>
</body>
</html>
2、Factory差异性写法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简单工厂模式之差异化写法——三种弹窗效果封装</title>
<script type="text/javascript">
//简单工厂模式之差异化写法——三种弹窗效果封装
//工厂模式
function createPop(type,text){
//封装一个对象,并对该对象拓展其属性和方法
var o = {};
o.text = text;
o.show = function(){
console.log(this.text);//this指向当前对象o
//show显示方法代码
}
if(type == 'alert'){
alert(o.text);
}else if(type == 'prompt'){
prompt('提示',o.text);
}else if(type == 'confirm'){
confirm(o.text);
}
return o;//将对象o返回出去
}
//测试用例
var userNameTip = createPop('confirm','用户名只能是12位以内字母下划线和数字组成');//创建即弹出
userNameTip.show();
//本例已经通过验证
</script>
</head>
<body>
</body>
</html>
js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象的更多相关文章
- js原生设计模式——3简单工厂模式\js面向对象编程实例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——4安全的工厂方法模式之Factory方法模式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——4安全的工厂方法模式之oop编程增强版
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——13桥接模式(相同业务逻辑抽象化处理的职责链模式)
桥接模式之多元化类之间的实例化调用实例 <!DOCTYPE html><html lang="en"><head> <meta ch ...
- js原生设计模式——12装饰者模式
1.面向对象模式装饰者 <!DOCTYPE html><html lang="en"><head> <meta charset=&q ...
- js原生设计模式——9外观模式封装
1.事件处理程序兼容性封装 <!DOCTYPE html><html lang="en"><head> <meta charset= ...
- js原生设计模式——7原型模式之真正的原型模式——对象复制封装
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——9外观模式封装2(小型代码库YJ)
<script type="text/javascript"> //小型代码库YJ封装 var YJ = { //根据id获取元素 ...
- js原生设计模式——7原型模式之new+call(this)组合应用再探讨实例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
随机推荐
- Dice Possibility
Dice Possibility 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 What is possibility of rolling N dice and th ...
- Android Fragment 真正的完全解析(上)--转
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fra ...
- PHP中的ORM
周末找个时间好好写一写 ORM相关的东西,整理整理. 参考:http://www.cnblogs.com/52fhy/p/5353181.html http://www.cnblogs.com/52f ...
- WordPress主题制作第二天
<?php if(have_posts()): while(have_posts()): the_post(); <!-- the_title(); the_permalink(); th ...
- CSS文字垂直居中和font-family属性
1.单行文字的垂直居中 单行文字垂直居中比较简单,直接让行高==盒子高度即可. 2.多行文字居中 多行文字居中,只需简单计算一下盒子的上padding即可.计算公式:padding-top=(盒子的高 ...
- C语言常见命名规范
C语言常见命名规范 1 常见命名规则 比较著名的命名规则首推匈牙利命名法,这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的.其主要思想是“在变量和函 ...
- CentOS 7 安装配置 NFS
CentOS 7 安装配置 NFS 环境 nps 192.168.1.97 client 192.168.1.98 一.yum 安装 yum -y install nfs-utils rpcbind ...
- Tokumx 代替 Mongodb 群集部署
一, 配置环境: 系统: CentOS 7 x64 tokumx1 ip: 192.168.0.155 tokumx2 ip: 192.168.0.156 tokumx3 ip: 192.168.0. ...
- 18、手把手教你Extjs5(十八)模块记录的拖放删除、拖放复制新增
网页当中的拖放(drag-drop)是比较有趣的操作,extjs5中很好的封装了拖放的动作,也有各种类来支持,但是要学好“拖放”这个东西真是很难,特别是象我这样英语不好的人,看不太懂官网上的说明,做一 ...
- MySql存储过程—7、游标(Cursor)
|字号 订阅 1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能 ...