我对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, ...);