易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript 历史栈

var Stack=function(limt_length){
this.stack=new Array();
this.limt=(limt_length)?limt_length:8;
}
Stack.prototype.push=function(o){
 if(this.exist(o)){
  this.remove(o);
  this.stack.unshift(o);
 }else{
  this.stack.unshift(o);
 }
 while(this.stack.length>this.limt){
 this.stack=this.stack.reverse();
 this.stack.shift();
 this.stack=this.stack.reverse();
 }
};
Stack.prototype.pop=function(){
 
 return this.stack.shift();
};
Stack.prototype.exist=function(o){
 return (this.getIndex(o)>-1);
};
Stack.prototype.getIndex=function(o){
 var ret=-1;
 for(var i=0,len=this.stack.length;i<len;i++){
 if(this.stack[i]==o){return i;}
 }
 return ret;
};
Stack.prototype.remove=function(o){
 var _i=this.getIndex(o);
 if(_i>-1){
 var fArray=this.stack.slice(0,_i);
 
 var bArray=this.stack.slice(_i+1,this.stack.length);
 this.stack=fArray.concat(bArray);
 }else{
 throw new Eorr("栈中不包含此对象");
 }
};
Stack.prototype.getCurret=function(){
return this.stack[0]; 
};
var s=new Stack();
var f=function(i){this.id=i;}
var tar=[];
for(var i=0;i<10;i++){
 var _f=new f(i);
 tar.push(_f);
 s.push(_f);
}
var sss1=(function(){
 var p="";
 for(var i=0;i<s.stack.length;i++){
  p=p+s.stack[i].id+","
 }
 return p;
})()
s.push(tar[1]);
var sss2=(function(){
 var p="";
 for(var i=0;i<s.stack.length;i++){
  p=p+s.stack[i].id+","
 }
 return p;
})()
alert(s.getCurret().id+"  "+s.pop().id)
alert(sss1)
alert(sss2)


相关文档:

JavaScript中自定义对象的相关知识

一概述
在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类、Hashtable类等等。
目前在Javascript中,已经存在一些标准的类,例如Date、Array、RegExp、String、Math、Number等等,这为我们编程提供了许多方便。但对于复杂的客户端程序而言,这些 ......

Javascript String对象

String
字符串对象。声明一个字符串对象最简单、快捷、有效、常用的方法就是直接赋值。
属性
             length
用法:<字符串对象>.length;返回该字符串的长度。
方法
            ......

JavaScript方法和技巧大全


JavaScript方法和技巧大全  基础知识
1 创建脚本块  <script language=”JavaScript”> JavaScript code goes here </script>
2 隐藏脚本代码  <script language=”JavaScript”><!-- document.write(“Hello”); --> </script>
在不支持 ......

《JavaScript 征途》 读后感

我是一名程序员,使用Java语言进行管理软件开发工作。有一次开发项目中使用JavaScript来丰富用户体验效果,特地认真的学习了一下,从此对JavaScript产生了浓厚的兴趣。有机会参加了由电子工业出版社飞思公司举办的《JavaScript征途》读后感有奖召集活动,获得赠书学习。由于本人文学水平有限,此读后感的用词不当之处还望多 ......

在JavaScript中实现高效的StringBuffer

JavaScript中的String是只读的,所以每次对String变量的操作都会在内存中产生一个零时变量,如果要对字符串进行大量的重复操作,性能和效率都会很低下,因此常用数组的方法操作字符串,即先把字符串都存储在数组中,然后使用join()方法连接字符串。
当然可以把这种方法再演变一下,在JavaScript中模拟StringBuffer类。
看 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号