JS封装问题,谢谢各位

function packageFun() {
        var length = 0;
        change = setInterval(function () {
            length++;
            if (length == $("#FirstPage li").length) {
                length = 0;
            }
            show(length);
        }, 5000);

        function show(length) {
            $("#FirstPage li").eq(length - 1).fadeOut(1000); //将上一张图片隐藏
            $("#FirstPage li").eq(length).fadeIn(1000); //将这张图片出现
        };
}
packageFun();



    怎么讲这个函数封装为面向对象的函数,谢谢各位大哥~

    function packageFun(id) {
        var length = 0;
        var change = setInterval(function () {
            length++;
            if (length == $("#" + id + " li").length) {
                length = 0;
            }
            show(length);
        }, 5000);

        function show(length) {
            $("#" + id + " li").eq(length - 1).fadeOut(1000); //将上一张图片隐藏
            $("#" + id + " li").eq(length).fadeIn(1000); //将这张图片出现
        }
    }
    new packageFun('FirstPage');
 function PackageFun(options){
        this.length = 0;
        this.t = 5000;
        this.animationTime = 1000;
        this.init(options);
 }
 PackageFun.prototype.init = function(options){
        this.el = options.el;
        this.t = options.t || this.t;
        this.animationTime = options.animationTime || this.animationTime;
        if((typeof this.el).toLowerCase() !== "string") return false;
        this.$els = $('#' + this.el + ' li');
        this.$length = this.$els.length;
        this.change();
 }
 PackageFun.prototype.change = function(){
     var _self = this;
     this.timer = setInterval(function(){
            _self.length ++;
            if(_self.length === _self.$length){
                _self.length = 0
            }
            _self.show(_self.length);
     },this.t)
 }
 PackageFun.prototype.show = function(length){
     var t = this.animationTime;
     this.$els.eq(length - 1).fadeOut(t);
     this.$els.eq(length).fadeIn(t)
 }

 new PackageFun({
     el:'FirstPage'
 })

方法如上,不过能改进的地放,比如将setInterval改为setTimeout,如果兼容高版本可以使用document.querySelector选择器不必使用jq的选择器,以及添加动画方法等

function packageFun(id) {
    var length = 0;
    var change = setInterval(function () {
        length++;
        if (length == $("#" + id + " li").length) {
            length = 0;
        }
        show(length);
    }, 5000);


}
 packageFun.prototype.show = function(length){
    $("#" + id + " li").eq(length - 1).fadeOut(1000); //将上一张图片隐藏
        $("#" + id + " li").eq(length).fadeIn(1000); //将这张图片出现
 }
new packageFun('FirstPage');

    是这样吗