类数组

类数组

1、可以利用属性名模拟数组的特性
2、可以动态的增长 length 属性
3、如果强行让类数组调用 push 方法,则会根据 length 属性值的位置进行属性的扩充。

例下面是类数组的基本形态

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

在这里插入图片描述
在控制台 push(‘d’)以后,obj 的 object 多了一个 3:d,长度也变成了 4
类数组:属性要为索引(数字)属性,必须要有 length 属性,最好加上 push 方法。

例:如果给一个对象加上 splice 方法,那么这个对象就长得像数组了。但他仍然是对
象,但是可以当做数组来用,需要自己添方法。
例如:

		var obj = {
            "0" : 'a',
            "1" : 'b',
            "2" : 'c',
            "length" : 3,
            "push" : Array.prototype.push,
            "splice" : Array.prototype.splice
        }
        Array.prototype.push = function(target) {
            this[this.length] = target;
            this.length ++;
        }

在这里插入图片描述
例如: 阿里巴巴题目,问这个obj长什么样子?

		var obj = {
            "2" : "a",
            "3" : "b",
            "length" : 2,
            "push" : Array.prototype.push
        }
        obj.push('c');
        obj.push("d");

在这里插入图片描述
关键点在 length 上面,根据 length 改变而改变,走一下 length,即:

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

例如:

		var obj = {
            "1" : 'a',
            "2" : 'c',
            "3" : 'd',
            "length" : 3,
            "push" : Array.prototype.push
        }
        obj.push('b');

在这里插入图片描述
例如:

     	var obj = {
            "0" : 'a',
            "1" : 'b',
            "2" : 'c',
            name : 'abc',
            age : 123,
            length : 3,
            push : Array.prototype.push,
            splice : Array.prototype.splice
        }
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20200626054741141.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzQxMDI2Nw==,size_16,color_FFFFFF,t_70)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值