js中 类数组对象
类数组对象 自身特征:
类数组对象首先是个对象,非null,非undefined,另外该对象长度(小于2^32)有限。可以对照代码理解一下它的含义:假设obj是一个类数组对象
obj && typeOf obj=="object" //n非null,undefined,且是对象
&& isFinite(obj.length) //长度有限,且为非负值,整数,小于2^32
&& obj.length >= 0
&& obj.length ===Math.floor(o.length)
&& obj.length < 2^32
类数组对象 方法属性:
-
可以使用for循环
-
类数组对象没有继承 Array.prototype,因此不能直接调用数组方法,不过其可以间接使用Function.call方法调用,如:Array.prototype.slice.call();
如: var a={"0":"a","1":"b","2":"c",length:3}; //这是一个类数组对象 Array.prototype.join.call(a,"+"); //"a+b+c" Array.prototype.slice.call(a,0); //["a","b","c"],真正数组的副本 Array.prototype.map.call(a,function (x) { return x.toUpperCase(); //["A","B","C"] });
常见的 类数组对象 介绍:
- Arguments对象;
- document.getElementsByTagName()返回一个类数组对象
arguments类数组对象 特点:
- 它将实参以数组的形式保存着,还可以像数组一样访问实参,如arguments[0];
- 它也有自己独特的属性,如:arguments.callee,是当前正在执行的函数的引用;
- 它的长度是实参的个数。arguments.length表示 参数个数。