这段js代码是什么意思,高人给我解释一下,我实在看不懂

rangf 2009-12-24 09:44:31
Queue.prototype.Dequeue = function()
{
var element = undefined;
if (this.queue.length)
{
element = this.queue[this.queueSpace];
if (++this.queueSpace * 2 >= this.queue.length)//???????????
{
this.queue = this.queue.slice(this.queueSpace);
this.queueSpace=0;
}
}
return element;
}
...全文
105 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rangf 2011-09-04
  • 打赏
  • 举报
回复
试试头像
rangf 2011-09-04
  • 打赏
  • 举报
回复
哈哈~~~~~~~~~~~~
wtcsy 2009-12-24
  • 打赏
  • 举报
回复
当this.queueSpace的直大于或者等于this.queue长度一半的时候
窃取this.queue 的后一半(但似乎是长度为单数的时候,this.queue长度为偶数的时候后一半差第一个)
for example

	function Queue(){
this.queue = [];
this.queueSpace = 0;
};
Queue.prototype.Dequeue = function(){
var element = undefined;
if (this.queue.length)
{
element = this.queue[this.queueSpace];
if (++this.queueSpace * 2 >= this.queue.length)//???????????
{
this.queue = this.queue.slice(this.queueSpace);
this.queueSpace=0;
}
}
return element;
};
(function(ss){
ss.queue=[1,2,3,4,5,6,7,8,9,10,11]
ss.queueSpace = 5;
ss.Dequeue();
alert(ss.queue);
})(new Queue());

rangf 2009-12-24
  • 打赏
  • 举报
回复
前面还有初始化:
this.queue = [];
this.queueSpace = 0;
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-24 09:44
社区公告
暂无公告