类数组和数组

Arraylike类数组有着数组一样的数据,但是没有数组的实力方法,并且是一个Object。

// 一个伪数组
var a = {
	0: 1,
	1: 2,
	length: 2
}

// 题目
var a = {
	2: 3,
	3: 4,
	length: 2,
	push: Array.prototype.push,
	splice: Array.prototype.splice
}
a.push(1)
a.push(2)
// a Object(4) [empty × 2, 1, 2, push: ƒ, splice: ƒ]

why?看看MDN
push是按照length来判断当前插入的位置,也就是说
a.push(1) ====> a[a.length] = 1 && a.length ++
改变位置的值,同时长度+1
上面改变一下如果a的初始length = 0
那么 最后打印: Object(2) [1, 2, 2: 3, 3: 4, push: ƒ, splice: ƒ]

同理我们了解一下splice
a.splice(0, 2) 表示删除从0开始的2个
那么针对的索引0和1,同时length - 2
打印结果:Object(4) [ 2: 3, 3: 4, push: ƒ, splice: ƒ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值