JavaScript类数组

类数组的组成部分

属性必须为索引(数字)属性

必须有length属性

最好有push方法

var obj = {
    '0':'a',
    '1':'b',
    '2':'c',
    'length':3,// 必须有length属性,没有length属性,不构成类数组
    'push':Array.prototype.push,// 添加数组方法

    //'splice':Array.prototype.splice// 把对象形式转换为数组形式
}

此时执行obj.push('d')的话会在这个类数组中push一条数据,同时length自动加1

那么下面我们看一道题

var obj = {
    '2':'a',
    '3':'b',
    'length':2,
    'push':Array.prototype.push
}

 obj.push('c')
 obj.push('d')

此时的输出结果为

 此时可以看出当向这个类数组push新数据的时候,是根据它自身的length来的,也就是说新添加的数据是根据length来确定索引位置的

类数组添加数据的过程

Array.prototype.push = function (target) {
 	obj[obj.length] = target
 	obj.length ++
}

类数组的优势

var obj = {
    '0':'a',
    '1':'b',
    '3':'c',
    name:'abc',
    age: 18,
    sex: 'man',
    length: 3,
    push:Array.prototype.push,
    splice:Array.prototype'splice
}

同时包含对象和数组,都能读取(读取全部属性可以用for in 循环)

类数组不具备数组方法,如果想要使用数组方法自己添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值