面试官: 知道push么?
XXX:知道!
面试官:做做下面这个题吧。。。
XXX: ....
var obj = {
'2': 3,
'3': 4,
length: 2,
splice: Array.prototype.splice,
push: Array.prototype.push
}
obj.push(1)
obj.push(2)
console.log(obj)
输出什么?
Why?【继续往下看】
【类数组】
- 不具有数组的所具有的方法
- 拥有length属性,其属性(索引)为非负整数
【原理】
类数组,push是根据length来判断添加的位置的,会给length加1,没有length的话,添加length,值是1,原来length是2的话,push(1),根据length是2,所以下一个的索引是2,push进来的值就应该是'2'的值,所以是'2':1,同理,push(2),'3':2,length是4。
懂了么?快快点赞吧!!!
原创不易,自由转载,保留出处