这篇文章主要介绍了 JavaScript 中的类数组对象介绍, 一个对象并不是由 Array 构造函数所创建的, 它依然呈现出数组的行为, 在这种情况下, 这些对象被称为 "类数组对象", 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
JavaScript 中,数组是一个特殊的对象,其 property 名为正整数,且其 length 属性会随着数组成员的增减而发生变化,同时又从 Array 构造函数中继承了一些用于进行数组操作的方法。而对于一个普通的对象来说,如果它的所有 property 名均为正整数,同时也有相应的 length 属性,那么虽然该对象并不是由 Array 构造函数所创建的,它依然呈现出数组的行为,在这种情况下,这些对象被称为 "类数组对象"。以下是一个简单的类数组对象:
- var o = {
- 0 : 42,
- 1 : 52,
- 2 : 63,
- length: 3
- }
- console.log(o);
与普通对象不同的是,类数组对象拥有一个特性:可以在类数组对象上应用数组的操作方法。比如,在 ECMAScript 5 标准中,可以用以下方法来将上面的对象 o 合并成字符串:
- console.log(Array.prototype.join.call(o));//"42,52,63"
也可以在类数组对象上使用 slice() 方法获取子数组:
- console.log(Array.prototype.slice.call(o, 1, 2));//[52]
在浏览器环境中,document.getElementsByTagName()语句返回的就是一个类数组对象。在 function 调用中,function 代码内的 arguments 变量 (保存传入的参数) 也是一个类数组对象。
在 ECMAScript 5 标准中,字符串 string 就是一个只读的类数组对象:
- var s = "History";
- console.log(s[3]);//t
- console.log(Array.prototype.join.call(s, " "));//H i s t o r y
来源: