JavaScript类数组

来源:互联网 发布:索尼运动耳机知乎 编辑:程序博客网 时间:2024/05/19 03:45

数组的特性

以下是《JavaScript高级程序设计》中对数组特性的定义
1. 当新的元素添加到列表时,自动更新length属性
2. 设置length为一个较小值将截断数组
3. 从Array.prototype中继承一些有用的方法
4. 其类属性为“Array”

类数组

在js中有一些对象它也拥有length属性,且拥有为非负整数的属性,但是它又不能调用数组的方法,这种对象被称为类数组对象

简单的一个类数组

var arrAlike={0:'a',1:'b',2:'c',length:3}console.log(arrAlike)Object {0: "a", 1: "b", 2: "c", length: 3}0:"a"1:"b"2:"c"length:3__proto__:Object

HTMLCollection,Arguments是两个经典的类数组对象

HTMLCollection

<div></div><div></div><div></div>var divs = document.getElementsByTagName('div')console.log(divs)
(3) [div,div,div]0:div1:div2:divlength:3__proto__:HTMLCollection

Arguments

function foo(){   console.log(arguments)}foo('a','b','c')
[object Arguments] {  0: "a",  1: "b",  2: "c"}

类数组转化为数组

类数组虽然无法直接使用数组的方法,但是可以间歇的使用 Function.call方法调用Array.prototype的方法。
如下:

var arrAlike={0:'a',1:'b',2:'c',length:3}var arr = Array.prototype.slice.call(arrAlike)console.log(arr)
 (3) ['a','b','c']

以上是我在学习javaScript过程中做的一些总结,如有不足之处,还请指正

原创粉丝点击