类数组对象

11 小时前
/ ,
1

类数组对象

所谓类数组对象,是指拥有 length 属性和若干索引属性的对象。从读写、获取长度、遍历这三个方面来看,与数组无异,但没有办法主动调用数组方法。

数组实例从 Array.prototype 继承了 push、pop、slice 等方法,而类数组对象的原型链里根本没有这一环,所以即使结构长得像数组,也调不动那些方法。

var array = ['name', 'age', 'sex'];

var arrayLike = {
    0: 'name',
    1: 'age',
    2: 'sex',
    length: 3
}

类数组对象中没有继承Array的原型,但我们可以使用 Array.prototype 中的方法主动 call/apply/bind,来调用数组方法。

var arrayLike = {0: 'name', 1: 'age', 2: 'sex', length: 3 }

const arr = Array.prototype.slice.call(arrayLike);
console.log(arr); 

const arrayLike2 = {...arrayLike}
const arr2 = Array.prototype.splice.call(arrayLike, 0, arrayLike.length) // splice 会返回被删除的数组,并且改变原数组,所以这里  arrayLike 已经被 "掏空"
console.log(arr2)

const arr3 = Array.from(arrayLike2);
console.log(arr3)

const arr4 = Array.prototype.concat.apply([], arrayLike2)
console.log(arr4)

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...