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 ...
随机推荐
- 怎样让外界无法改变自定义view的尺寸大小
重写setFrame和setBounds方法即可. + (instancetype)testView { return [[self alloc] init]; } - (void)setFrame: ...
- 解决BT5不能使用putty连接问题
root@bt:~# cd /etc/sshroot@bt:/etc/ssh# sshd-generate Generating public/private rsa1 key pair.Your i ...
- javascript 中this的使用场景全
1. global this 2.function this 3.prototype this 4. object this 5.DOM this 6 HTML this 7 override thi ...
- Jedis使用示例
http://javacrazyer.iteye.com/blog/1840161 http://www.cnblogs.com/edisonfeng/p/3571870.html
- source command not found in sh shell解决办法
在Ubuntu系统中执行脚本的时候突然出现错误"source command not found in sh shell" 这个其实在Ubuntu 当中 执行脚本默认的使用的是da ...
- Linux建立信任主机
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.先在本机上面装一个sshpass 的安装包 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2.ssh-ke ...
- Arduino单片机使用和开发问题记录(转)
源:Arduino单片机使用和开发问题记录 1.将程序上传到板子时Arduino IDE提示“avrdude: stk500_getsync(): not in sync: resp=0x00” 网上 ...
- HTML学习一(入门了解)
基础部分---------------------------------一:简介HTML 是用来描述网页的一种语言.HTML 指的是超文本标记语言 (Hyper Text Markup Langua ...
- html中的图片、css、js等路径加载问题
网页文件的存取路径有3种:物理路径.绝对路径和相对路径. 物理路径就是你的文件放在主机上的具体位置,例如:D:\\image\\1.jpg 这种格式,该方法可以很快确定出你的文件,但是在网页显示路径基 ...
- 为什么无线信号(RSSI)是负值(转)
源:为什么无线信号(RSSI)是负值 为什么无线信号(RSSI)是负值 答:其实归根到底为什么接收的无线信号是负值,这样子是不是容易理解多了.因为无线信号多为mW级别,所以对它进行了极化,转化为dBm ...