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

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

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

转载于:https://my.oschina.net/codespring/blog/532060

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值