js类数组对象使用数组方法的安全方式

原创
2015/11/18 16:13
阅读数 472

要想在各浏览器中表现一致:

如果类数组对象需要使用数组的方法,不要去继承数组,而应该使用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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部