javascript 几种常见设计模式
2016-03-29 21:11
666 查看
<body>
<button id="show">show</button>
<button id="hide">hide</button>
<hr>
<button id="factoryShow">show</button>
<button id="factoryHide">hide</button>
<hr>
<button id="thisShow">show</button>
<button id="thisHide">hide</button>
<hr>
<button id="mixShow">show</button>
<button id="mixHide">hide</button>
<script>
window.onload = function (argument) {
//单例
function layer(){
function show(){
console.log('show');
}
function hide(){
console.log('hide');
}
return {
hide:hide,
show:show
}
};
var lio = layer();
document.getElementById('show').addEventListener('click',function(){
lio.show();
},false);
document.getElementById('hide').addEventListener('click',function(){
lio.hide();
},false);
//工厂模式
function factory(){
var factory = {};
factory['show'] = function(){
console.log('factoryshow');
}
factory.hide = function(){
console.log('factoryhide');
}
return factory;
}
var gongchang = factory();
document.getElementById('factoryShow').addEventListener('click',function(){
gongchang.show();
},false);
document.getElementById('factoryHide').addEventListener('click',function(){
gongchang.hide();
},false);
//构造函数模式
function construct(){
this.show = function(){
console.log('thisshow');
}
this.hide = function(){
console.log('thishide');
}
}
var construct = new construct();
document.getElementById('thisShow').addEventListener('click',function(){
construct.show();
},false);
document.getElementById('thisHide').addEventListener('click',function(){
construct.hide();
},false);
//混合模式
function mix(){
this.show = function(){
console.log('thisshow');
}
this.hide = function(){
console.log('thishide');
}
}
mix.prototype.prototypeShow = function(first_argument) {
console.log('prototypeshow');
};
var mix = new mix();
document.getElementById('mixShow').addEventListener('click',function(){
mix.prototypeShow();
},false);
document.getElementById('mixShow').addEventListener('click',function(){
mix.show();
},false);
document.getElementById('mixHide').addEventListener('click',function(){
mix.hide();
},false);
}
</script>
</body>
<button id="show">show</button>
<button id="hide">hide</button>
<hr>
<button id="factoryShow">show</button>
<button id="factoryHide">hide</button>
<hr>
<button id="thisShow">show</button>
<button id="thisHide">hide</button>
<hr>
<button id="mixShow">show</button>
<button id="mixHide">hide</button>
<script>
window.onload = function (argument) {
//单例
function layer(){
function show(){
console.log('show');
}
function hide(){
console.log('hide');
}
return {
hide:hide,
show:show
}
};
var lio = layer();
document.getElementById('show').addEventListener('click',function(){
lio.show();
},false);
document.getElementById('hide').addEventListener('click',function(){
lio.hide();
},false);
//工厂模式
function factory(){
var factory = {};
factory['show'] = function(){
console.log('factoryshow');
}
factory.hide = function(){
console.log('factoryhide');
}
return factory;
}
var gongchang = factory();
document.getElementById('factoryShow').addEventListener('click',function(){
gongchang.show();
},false);
document.getElementById('factoryHide').addEventListener('click',function(){
gongchang.hide();
},false);
//构造函数模式
function construct(){
this.show = function(){
console.log('thisshow');
}
this.hide = function(){
console.log('thishide');
}
}
var construct = new construct();
document.getElementById('thisShow').addEventListener('click',function(){
construct.show();
},false);
document.getElementById('thisHide').addEventListener('click',function(){
construct.hide();
},false);
//混合模式
function mix(){
this.show = function(){
console.log('thisshow');
}
this.hide = function(){
console.log('thishide');
}
}
mix.prototype.prototypeShow = function(first_argument) {
console.log('prototypeshow');
};
var mix = new mix();
document.getElementById('mixShow').addEventListener('click',function(){
mix.prototypeShow();
},false);
document.getElementById('mixShow').addEventListener('click',function(){
mix.show();
},false);
document.getElementById('mixHide').addEventListener('click',function(){
mix.hide();
},false);
}
</script>
</body>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享