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 ...
随机推荐
- 关于Tcpreplay
tcpprep -p -o /root/Desktop/ZS/Tcpreplay/cache_test.cache -i /root/Desktop/ZS/Tcpreplay/9.17.pcap tc ...
- DataSet和List<T> 泛型之间互相转换 (转载, 作者写的很好)
/DataSet与泛型集合间的互相转换 //利用反射机制将DataTable的字段与自定义类型的公开属性互相赋值. //注意:从DataSet到IList<T>的转换,自定义类型的公开属性 ...
- 用批处理文件删除n天前的文件
原文:http://blog.csdn.net/leehq/archive/2007/08/03/1723743.aspx 公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服 ...
- linux下sed命令对文件执行文本替换
让我们看一下 sed 最有用的命令之一,替换命令.使用该命令,可以将特定字符串或匹配的规则表达式用另一个字符串替换.下面是该命令最基本用法的示例: $ sed -e ‘s/foo/bar/’ myfi ...
- .NET反射应用
.Net中,在编写框架时,反射是最长用的一个知识点,在这举个小例子,旨在说明反射如何应用:本文只程序中只涉及到System.Type的应用,通过这个类可以访问关于任何数据类型的信息,注释部分涉及到Sy ...
- 关联容器(map):支持高效查找的容器,一种键值对的集合。
#include <iostream> #include <string> #include <map> #include <vector> using ...
- Python之路:线程池
版本一 #!/usr/bin/env python # --*--coding:utf-8 --*-- import Queue import threading class ThreadPool( ...
- GetEnvironmentVariable 获取常用系统变量(转)
源:GetEnvironmentVariable 获取常用系统变量 //譬如 WINDIR 表示系统目录系统变量, 以这样获: var s:string; begin s:=GetEnvironmen ...
- CodeForces 614B Gena's Code
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm& ...
- strace 分析 跟踪 进程错误
strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进程状态变更等. ...