如何使用jquery在类中使用public方法

时间:2014-02-19 11:51:52

标签: javascript jquery

我对jquerymx有疑问。 我想在deque类中使用某些方法的公共方法。 因为它将被用于其他类。 例子)我认为pushback是deque类中的私有方法。所以我想把它改成公开的。 我该如何解决这个问题?

deque : function(){
   this.elements = [];

    // pushback :function(element)
    // {
    //      this.elements.push(element);
    // }

    this.push_back = function(element){
         this.elements.push(element);
    }

    this.push_front = function(element){
         this.elements.unshift(element);
    }

    this.pop_back = function(){
        return this.elements.pop();
    }

    this.pop_front = function() {
        return this.elements.shift();                                                
    }

    this.peek_back = function(){
         return this.elements[this.elements.length-1];
    }

    this.peek_front = function(){
         return this.elements[0];
    }

    this.isEmpty = function(){
         return this.elements.length === 0;
    }

    this.getElements = function(number){
         return this.elements[number];
    }

    this.Length = function(){
         return this.elements.length;
    }
}

谢谢你的回复。

编辑:

Widget.js

(function($,S){
 S.Claass('Widget',{
    init:function(){
    },
    deque : function(){
        this.elements = [];   

        push_back = (function(element){
            this.elements.push(element);
        }).bind(this);

        push_front = (function(element){
            this.elements.unshift(element);
        }).bind(this);

        pop_back = (function(){
            return this.elements.pop();
        }).bind(this);

        pop_front = (function() {
            return this.elements.shift();                                                
        }).bind(this);

        peek_back = (function(){
            return this.elements[this.elements.length-1];
        }).bind(this);

        peek_front = (function(){
            return this.elements[0];
        }).bind(this);

        isEmpty = (function(){
            return this.elements.length === 0;
        }).bind(this);

        getElements = (function(number){
            return this.elements[number];
        }).bind(this);

        Length = (function(){
            return this.elements.length;
        }).bind(this);
    });
})(jQuery, ...);

------。JS

(function($, S){
   S.Widget('-----',{
      init:function(){
         this.tempDeque = new this.deque();
      },

      setup:function(){
          ....

         for(var i = 0; i < 10; i++)
         {
               .....
              this.tempDeque.push_back(i); /// this is error.
         }
      }
   });

})(jQuery, ...);

0 个答案:

没有答案