类数组
必须具备条件:
1.属性为索引属性,即数字。
2.必须要有length属性,最好加上push方法 即Array.prototype.push
3.一旦加上splice之后,对象将长得跟数组一样(即中括号)Array.prototype.splice
*常见的类数组有 1.函数的argument 2.Nodelist(节点集合) 3.HTMLCollection(元素集合)
*将类数组转换为数组需要借用到call():
“
//假设body中有5个div
//类数组如何转换为正常数组
//元素类数组转为数组
var ndLis = document.getElmentByName("div");
var ndArray = Array.prototype.slice.call(ndLis);//此时NDArray为正常数组
//节点类数组去转为数组
var hLis = document.getElmentByTagName("div");
var HArray = Array.prototype.slice.call(hLis);//此时的HArray为正常数组
//将argument类数组转换为数组
function agu (){
var aguArray = Array.prototype.slice.call(argument)//此时的argument为正常数组
}
”
*还可以用空数组数组实例通过原型链去调用slice 如:[].slice.call(argument);
*在IE6~8当中不支持节点集合和元素集合的类数组转为正常数组(需要做兼容)
var hList = document.getElementsByTagName("div");
// console.dir(hList);
var ndList = document.getElementsByName("zhu");
// console.dir(ndList);
var ary = Array.prototype.slice.call(ndList);
console.dir(ary);
网友评论