要想在各浏览器中表现一致:
如果类数组对象需要使用数组的方法,不要去继承数组,而应该使用Array.prototype.xxx.apply(obj,[]);的方法;
如果需要用到length计算属性数量,记得正确初始化length属性的值。
function myarr(){
this[0]='cc';
this.length=1;//多加一个length的初始化
}
var m=new myarr();
Array.prototype.push.apply(m,['cson','lai','xiaoc']);
alert(m.length);//输出4
alert(m[2]);//输出’lai‘
array跟普通的object对象最大的区别就是 array调用push等方法时, 引擎会帮你自动维护length属性.
而ie6 7下必须先初始化length属性的原因是, 它没有把length=undefined转化为length=0