类数组:
1.可以利用属性名模拟数组的特性
2.可以动态的增长 length 属性
3.如果强行让类数组调用 push 方法,则会根据 length 属性值的位置进行属性的扩充。
没有数组的方法
1.属性要为索引(数字)属性
2.必须有length属性
3.最好加上push方法
一旦给数组加上一个splice对象,对象就长得像数组那样了
好处:
function test() {
console.log(arguments);
}
test(1, 2, 3, 4, 5, 6);
var obj = {
"0": 'a',
"1": 'b',
"2": 'c',
}
var arr = ['a', 'b', 'c'];
var obj = {
"0": 'a',
"1": 'b',
"2": 'c',
"length": 3,
"push": Array.prototype.push,
"splice": Array.prototype.splice
}
Array.prototype.push = function(target) {
obj[obj.length] = target;
obj.lenth++;
}
题:给你一个类数组push进去两个字符,问最后的运行结果
var obj = {
"2": "a",
"3": 'b',
"length": 2,
"push": Array.prototype.push
}
obj.push('c');
obj.push('d');
答案:
obj = {
"2": "c",
"3": "d",
"length": 4
}
栗子:
var obj = {
"0": "a",
"1": "b",
"2": "c",
name: "abc",
age: 123,
length: 3,
push: Array.prototype.push,
splice: Array.prototype.splice
}
for (var prop in obj) {
console.log(obj[prop]);
}