javascript程序设计
javascript的原型链有显式和隐式两种:
显式原型链:即我们常见的prototype;
隐式原型链:在一般环境下无法访问,即不可见,在FireFox下可以通过__proto__方式访问;隐式原型链用于javascript引擎内部对原型链的搜寻,通过显示原型链来设置;
一、prototype和__proto__的概念
prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象。它是显示修改对象的原型的属性。
__proto__是一个对象拥有的内置属性(请注意:prototype是函数的内置属性,__proto__是对象的内置属性),是JS内部使用寻找原型链的属性。
用chrome和FF都可以访问到对象的__proto__属性,IE不可以。
二、new 的过程
var Person = function(){};var p = new Person();
new的.过程拆分成以下三步:
(1) var p={}; 也就是说,初始化一个对象p
(2) p.__proto__ = otype;
(3) (p); 也就是说构造p,也可以称之为初始化p
关键在于第二步,我们来证明一下:
var Person = function(){};var p = new Person();alert(p.__proto__ === otype);
这段代码会返回true。说明我们步骤2是正确的。
三、示例
var Person = function(){};ame = function() { alert("My Name is Jacky");}; = 27;var p = new Person();ame();
p是一个引用指向Person的对象。我们在Person的原型上定义了一个sayName方法和age属性,当我们执行时,会先在this的内部查找(也就是构造函数内部),如果没有找到然后再沿着原型链向上追溯。
这里的向上追溯是怎么向上的呢?这里就要使用__proto__属性来链接到原型(也就是otype)进行查找。最终在原型上找到了age属性。
-
计算机硬件的维护与管理策略
现今社会计算机的运用是越来越广泛,在硬件维护与管理的过程中会出现很多方面的问题。下面是本站小编搜索整理的关于计算机硬件的维护与管理策略,欢迎参考阅读,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生培训网!一、对计算机的硬件进行检测并...
-
双十一期间中小卖家的生存之道
双十一现在已经成为全民皆知的购物狂欢节了,很多买家会选择在这一天购买平时舍不得买比较贵的宝贝,特别是一些比较知名的大店铺。因此在这种节日里面,大店铺总是不乏各种优质的流量资源,就算活动力度不大,买家们也会觉得比平时好像确实便宜了那么点,自然就会更加青睐...
-
word键盘类技巧
Shift是我们平时再熟悉不过的一个键了,在资源管理器或我的电脑中,按住Shift可以强制执行文件的移动操作,配合鼠标还可以进行批量文件的快速选择,可谓是方便多多了。下面盘点一下word键盘类技巧有哪些,一起来学习一下!1.Shift+Delete键=剪切当我们选中简历表格里的一...
-
专升本excel模拟题附答案
想要考试取得好成绩,平时就需要按照"循序渐进、阶段侧重、精讲精练"的原则进行练习。下面是小编为大家整理的专升本excel模拟题附答案,欢迎参考!1、在Excel2003中,数据清单是工作表中______。A:没有空行的区域B:没有空列的区域C:任何区域D:没有空行和空列的区域答案:D2...