js原生设计模式——7原型模式之new+call(this)组合应用再探讨实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>new+call(this)组合应用再探讨实例</title>
<script type="text/javascript">
/***
*参数:
*imgArr:图片组
*container:轮播图的父容器
*arrow:左右箭头图片组
*/
//创建图片轮播基类
var LoopImages = function(imgArr,container){
this.imagesArr = imgArr;
this.container = container;
}
LoopImages.prototype = {
//创建轮播图片
createImage:function(){
console.log('createLoopImages');
},
//切换下一张图片
changeImage:function(){
console.log('changeLoopImages');
}
}
//创建上下滑动子类
var SlideLoopImg = function(imgArr,container){
//构造函数继承父类图片轮播类
LoopImages.call(this,imgArr,container);
}
SlideLoopImg.prototype = new LoopImages();//这句加上上面的call(this)就是组合式继承了
//先new继承父类原型,再创建子类的原型方法,这个顺序一定得这样写,否则报错
SlideLoopImg.prototype.changeImage = function(){
console.log('SlideLoopImg changeImages');
}
//创建渐隐渐显子类
var FadeLoopImg = function(imgArr,container,arrow){
LoopImages.call(this,imgArr,container);
this.arrow = arrow;
}
FadeLoopImg.prototype = new LoopImages();
FadeLoopImg.prototype.changeImage = function(){
console.log('FadeLoopImg changeImages');
}
//测试用例
var fadeimg = new FadeLoopImg(['01.jpg','02.jpg','03.jpg','04.jpg'],'slide',['left.jpg','right.jpg']);//'slide'是父容器名字
fadeimg.changeImage();
//本例已经通过验证
</script>
</head>
<body>
</body>
</html>
最新文章
- C#脚本引擎 CS-Script 之(三)——如何部署
- oracle 查询谁在用undo
- python3.x 学习心得
- OJ网站程序员必备
- 【暑假】[深入动态规划]UVa 1380 A Scheduling Problem
- MVC 自定义AuthorizeAttribute实现权限管理
- 删除WIN7系统的共享文件
- js动画学习(二)
- 《HTML5与CSS3权威指南》读书笔记(上册)—HTML5篇
- Tomcat安装和目录简介
- Caffe框架,训练model并测试数据
- HDU-1171 Big Event in HDU(生成函数/背包dp)
- PHP常用设计模式讲解
- LDAP学习总结
- HDU 1568 Fibonacci(大数前4位)
- sublime使用技巧总结
- ios之调用打电话,发短信,打开网址
- WPF基础学习笔记整理 (四) 布局
- codeforces 678C. Joty and Chocolate(容斥) 2016-10-15 21:49 122人阅读 评论(0) 收藏
- API接口测试中需要注意的地方