JavaScript 之 类数组

avaScript是一门弱类型语言,它的数据类型分为两大类:简单数据类型(5种:Undefined、Null、Boolean、Number、String)和复杂数据类型(1种:Object)。Object是ECMAScript中使用最多的一个类型,所有的引用类型的值都是Object类型的实例。引用类型,本质上是一种数据结构,用于将数据和功能组织在一起。对象是某个特定引用类型的实例。

在JavaScript中,有一种特殊的对象,被称为类数组(array-like)对象,其在书中的定义为:

类数组的定义:

  • 拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)
  • 不具有数组所具有的方法

类数组实例:

        var obj = {
            "2":"a",  //属性2加或不加引号都可以
            "3":"b",
            "length":2,
            "push":Array.prototype.push
        }
        console.log(obj);

在控制台可以查看打印的结果如下:(实际上类数组就是个对象)

下面来操作一下数组:

首先我们得知道push的原型方法是怎么实现的:

var ary = [1,2,3,4,5,6,7,8];
Array.prototype.push=function () {
    for (var i=0;i<arguments.length;i++){
        this[this.length]=arguments[i]
    }
    return this.length;
};
console.log(ary.push(1, 2, 3)); //  输出:11
console.log(ary);               //  输出:[1,2,3,4,5,6,7,8,1,2,3]

知道了原型之后,接下来我们对obj进行push操作

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

结果为:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值