首页 > 代码库 > javascript学习笔记
javascript学习笔记
1.通过Array.prototype.slice.call(fakearray)将伪数组转化为数组
(也可以通过调用[].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.
2.原型式继承的原理
prototype与[[ptototype]]的理解:
每一个函数都有一个显式的prototype,代表了对象的原型(构造函数所创建出来的对象的原型)。
每个对象都有一个叫做[[prototype]]的内部属性,指向于它所对应的原型对象。
prototype 的根是Object.prototype,Object.prototype 的[[prototype]]的值是NULL;
3.为什么说undefined是null的子类
因为基本数据类型可以说是引用数据类型的子类(只不过是为了提高存取的效率,存放的位置不同),对应的undefined代表了无值的基本呢数据类型,
对应的null代表了无值的引用数据类型,再根据第一句话,可以牵强的推出undefinde是继承自null?
javascript学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。