JS教程:理解JavaScript闭包
console.debug(youmila.__proto__);//查看它的原型是object var root = youmila.__proto__; console.debug(root.__proto__);//查看object的原型 是null var rootParent = root.__proto__; console.debug(rootParent.__proto__);//null是原型链表的终端所以会报TypeError: rootParent is null错误 >>> var youmila = new Object(); console.debug(youmila…t.__proto__; console.debug(rootParent.__proto__);
创建了一个原型为 Object.prototype 的对象,而该原型自身则拥有一个值为 null 的原型。也就是说, objectRef 的原型链中只包含一个对象-- Object.prototype。但对于下面的代码而言: /* 创建 – MyObject1 – 类型对象的函数*/ /* 接下来的操作用 MyObject1 类的实例替换了所有与 MyObject2 类的实例相关联的原型。而且,为 MyObject1 构造函数传递了参数 – 8 – ,因而其 – testNumber – 属性被赋予该值:*/ /* 最后,将一个字符串作为构造函数的第一个参数,创建一个 – MyObject2 – 的实例,并将指向该对象的引用赋给变量 – objectRef – :*/ 被变量 objectRef 所引用的 MyObject2 的实例拥有一个原型链。该链中的第一个对象是在创建后被指定给 MyObject2 构造函数的 prototype 属性的 MyObject1 的一个实例。MyObject1 的实例也有一个原型,即与 Object.prototype 所引用的对象对应的默认的 Object 对象的原型。最后, Object.prototype 有一个值为 null 的原型,因此这条原型链到此结束。 当某个属性访问器尝试读取由 objectRef 所引用的对象的属性值时,整个原型链都会被搜索 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |