JavaScript设计模式(五)【原型模式】

初级-图片轮播

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原型模式-焦点图</title>
</head>
<body>
<script>
    //图片轮播类
    var LoopImages = function(imgArr, container) {
        this.imagesArray = imgArr; //轮播图片数组
        this.container = container; //轮播图片容器
        this.createImage = function() {
        }; //创建轮播图片
        this.changeImage = function() {
        }; //切换下一张图片
    }
    //上下滑动切换类
    var SlideLoopImg = function(imgArr, container) {
        //构造函数继承图片轮播类
        LoopImages.call(this, imgArr, container);
        //重写继承的切换下一张图片方法
        this.changeImage = function() {
            console.log('SlideLoopImg changeImage function');
        }
    }
    //渐隐切换类
    var FadeLoopImg = function(imgArr, container, arrow) {
        LoopImages.call(this, imgArr, container);
        //切换箭头私有变量
        this.arrow = arrow;
        this.changeImage = function() {
            console.log('FadeLoopImg changeImage function');
        }
    }

    window.onload = function() {
        //实例化一个渐隐切换图片类
        var fadeImg = new FadeLoopImg([
                '01.jpg',
                '2.jpg',
                '3.jpg',
                '4.jpg'
            ],
            'slide',
            [
                'left.jpg',
                'right.jpg'
            ]);
        fadeImg.changeImage();
    }
</script>
</body>
</html>

最优-图片轮播

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原型模式-图片轮播</title>
</head>
<body>
<script>
    //图片轮播类
    var LoopImages = function(imgArr, container) {
        this.imagesArray = imgArr; //轮播图片数组
        this.container = container; //轮播图片容器
    }
    LoopImages.prototype = {
        //创建轮播图片
        createImage: function() {
            console.log('LoopImages createImage function');
        },
        //切换下一张图片
        changeImage: function() {
            console.log('LoopImages changeImage function');
        }
    }
    //上下滑动切换类
    var SlideLoopImg = function(imgArr, container) {
        //构造函数继承图片轮播类
        LoopImages.call(this, imgArr, container);
    }
    SlideLoopImg.prototype = new LoopImages();
    //重写继承的切换下一张图片方法
    SlideLoopImg.prototype.changeImage = function() {
        console.log('SlideLoopImg changeImage function');
    }
    //渐隐切换类
    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 changeImage function');
    }
    //测试用例
    var fadeImg = new FadeLoopImg([
            '01.jpg',
            '2.jpg',
            '3.jpg',
            '4.jpg'
        ],
        'slide',
        [
            'left.jpg',
            'right.jpg'
        ]);
    console.log(fadeImg.container);
    fadeImg.changeImage();
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值