标签:des style io ar java sp 数据 div on
(也可以通过调用[].slice.call(fakearray)将伪数组转化成真正的数组,但是标题中的方法是通过原型调用,效率非常高,推荐)
原生JS种的常见的伪数组类型有:arguements,调用getElementsByTagName产生的HTMLCollection,document.childNodes,Element类型中的attributes属性中包含的NamedNodeMap类似于Nodelist伪数组对象。
1
2
3
4
5
6
7
|
var fakeArray01 = {a: ‘a‘ ,b: ‘b‘ ,length:2}; //没有length下标对应的值 var arr01 = Array.prototype.slice.call(fakeArray01); alert(arr01[0]); //undefined var fakeArray02 = {0: ‘a‘ ,1: ‘b‘ ,length: ‘num‘ }; //length不是数值 var arr02 = Array.prototype.slice.call(fakeArray02); alert(arr02[1]); //undefined |
即使伪数组被转化成了真正的数组,但是数组中的值都是undeifined.
prototype与[[ptototype]]的理解:
每一个函数都有一个显式的prototype,代表了对象的原型(构造函数所创建出来的对象的原型)。
每个对象都有一个叫做[[prototype]]的内部属性,指向于它所对应的原型对象。
prototype 的根是Object.prototype,Object.prototype 的[[prototype]]的值是NULL;
因为基本数据类型可以说是引用数据类型的子类(只不过是为了提高存取的效率,存放的位置不同),对应的undefined代表了无值的基本呢数据类型,
对应的null代表了无值的引用数据类型,再根据第一句话,可以牵强的推出undefinde是继承自null?
标签:des style io ar java sp 数据 div on
原文地址:http://www.cnblogs.com/pinkpig/p/4050884.html