JS字面量如何共享变量值?

clipboard.png
如图,怎么让i共享呢,现在是每次执行i都为0.

阅读 3.2k
3 个回答

大概就是这个样子,还没有验证

var vipData = (function() {
    var _i,
        len,
        pageList;
    function prev(i) {
        if(i == 0) {
            return false;
        }
        console.log(i);
        pageList.eq(1).show.siblings().show();
        _i--;
    }
    
    function next(i) {
        if( i == len -1) {
            return false;
        }
        console.log(i);
        pageList.eq(i).show().siblings().show();
        _i++;
    }
    function init() {
        var self = this,
            _i = 0;
        body.bind('swipUp', function() {
            self.nextPage(_i);
        });
        body.bind('swipDown', function() {
            self.prevPage(_i);
        });
    }
    init();
    return {
        prevPage : prev,
        nextpage: next,
        init: init
    }
})();

目前你在init 里面定义的i是个局部变量,外部访问不到,可否将它定义为vipdata 的一个属性,这样对于其他几个函数就是公开的了,不知道对不对,没有测试

给vipData对象新增一个属性来存储当前序列

var vipData = {
    index: 0,
    prev: function(){ this.index-- },
    next: function(){ this.index++ },
    init: function(){ 
        var self = this
        body.bind('swipUp', function() {
            self.nextPage()
        });
        body.bind('swipDown', function() {
            self.prevPage()
        });
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题