脚本宝典收集整理的这篇文章主要介绍了JavaScript 类数组对象,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
定义
JavaScript 类数组对象的定义:
可以通过索引访问元素,并且拥有 length 属性;
举例说明
VAR foo = { 0: 'Java', 1: 'Python', 2: 'Scala', length: 3 }
转换
如果类数组对象需要转化为数组,可以用 Array.prototype.slice.call
var foo = { 0: 'Java', 1: 'Python', 2: 'Scala', length: 3 } var arr = Array.PRototyPE.slice.call(foo);
其实一开始看到这个表达式感觉比较费解,后来查了一些资料,终于明白了,特别做一些说明:
第一, foo
本来是没有 slice
方法的, Array.prototype.slice.call(foo)
这个表达式相当于赋予 foo
这个对象 slice
方法。
第二, Array.prototype.slice.call(foo);
相当于 Array.prototype.slice.call(foo, 0);
是把取一个数组(或者类数组)的子集,并作为一个数组返回。所以当后面的作用对象是一个类数组时,就会把这个类数组对象转换为了一个新的数组。
所以,上面的一段代码等价于
var foo = { 0: 'Java', 1: 'Python', 2: 'Scala', length: 3 } foo.slice = Array.prototype.slice; foo.slice();
特性
类数组只有索引值和长度,没有数组的各种方法,所以如果要类数组调用数组的方法,就需要使用 Array.prototype.method.call
来实现。
例如,如果遍历一个类数组,可以这样实现:
Array.prototype.forEach.call(foo, function(ITem){ console.LOG(item); });
添加一个元素
Array.prototype.push.call(foo, 'PHP'); // foo = {0: "Java", 1: "Python", 2: "Scala 111", 3: "PHP", length: 4}
以上是脚本宝典为你收集整理的JavaScript 类数组对象全部内容,希望文章能够帮你解决JavaScript 类数组对象所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。