接上一篇,在这里,我们用一个自定义的类来扩展内置类的原型.
function myArray( o){
this.getArray=function(){
return o;
};
}
myArray.prototype={
each:function( fun){
var o=this.getArray();
for( var i=0,n=o.length;i<n;i++){
fun( i,o[i] );
}
},
clone:function(){
var o=[];
this.each( function(k,v){
o[k]=v;
});
return o;
},
map:function( fun ){
var o=[];
this.each( function( k,v){
o[k]=fun( k,v );
} );
return o;
},
del:function( a ){
var o=this.clone();
for( var i=o.length,n=0;i>n;i--){
if( o[i]==a ){
o.splice(i,1 );
}
}
return o;
}
}
var arr=new myArray( [1,2,3] );
var str="";
arr.each( function( k,v ){
str+=k+":"+v+"\n";
} );
alert( str );
//测试clone函数
var r=arr.clone();
alert( r );
//测试map函数
r=arr.map( function(k,v ){
return v*2;
} );
alert( r );
//测试del函数
r=r.del( 4 );
alert( r );function my