JavaScript中的类数组对象介绍


Posted in Javascript onDecember 30, 2014

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
Javascript 相关文章推荐
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 Javascript
jQuery中:enabled选择器用法实例
Jan 04 Javascript
sea.js常用的api简易文档
Nov 15 Javascript
适用于手机端的jQuery图片滑块动画
Dec 09 Javascript
初探JavaScript 面向对象(推荐)
Sep 03 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
vue双向绑定及观察者模式详解
Mar 19 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
Sep 23 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 16 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 Javascript
JavaScript中的方法调用详细介绍
Dec 30 #Javascript
JavaScript中的闭包(Closure)详细介绍
Dec 30 #Javascript
JavaScript中的类(Class)详细介绍
Dec 30 #Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 #Javascript
jQuery实现ichat在线客服插件
Dec 29 #Javascript
jQuery中用dom操作替代正则表达式
Dec 29 #Javascript
jQuery中:animated选择器用法实例
Dec 29 #Javascript
You might like
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
jquery选择器使用详解
2014/04/08 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
vue的mixins属性详解
2018/03/14 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
快速了解Python中的装饰器
2018/01/11 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
Python GUI编程完整示例
2019/04/04 Python
Python中if有多个条件处理方法
2020/02/26 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
留学推荐信写作指南
2014/01/25 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
工作犯错保证书
2015/05/11 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技