在学习JS的过程中,无意中在网上找到了一个高手写的博客,遂做点笔记!
参考来源:http://www.cnblogs.com/fool/archive/2010/10/13/1849734.html
先来张简单点的图:
首先明确一点[[prototype]]与prototype并不是同一个东西。
那先来看prototype,每一个函数对象都有一个显示的prototype属性,它代表了对象的原型,更明确的说是代表了由函数对象(构造函数)所创建出来的对象的原型。结合本例,Animal.prototype就是dog的原型,dog所引用的那个对象将从Animal.prototype所引用的对象那继承属性与方法。
每个对象都有一个名为[[Prototype]]的内部属性,指向于它所对应的原型对象。在本例中dog的[[prototype]]指向Animal.prototype,大家都知道,Animal.prototype也是一个对象,即然是一个对象,那它必然也有[[prototype]]属性指向于它所对应的原型对象,由此便构成了一种链表的结构,这就是原型链的概念。
额外要说的是:不同的JS引擎实现者可以将内部[[Prototype]]属性命名为任何名字,并且设置它的可见性,前且只在JS引擎内部使用。虽然无法在JS代码中访问到内部[[Prototype]](FireFox中可以,名字为__proto__因为Mozilla将它公开了),但可以使用对象的 isPrototypeOf()方法进行测试,注意这个方法会在整个Prototype链上进行判断。
【简而言之,一个对象 (通过new 构造函数 () 创建的对象) 的 内部属性[[prototype]] 指向 构造函数.prototype .】
一个函数对象,实际上是调用 new Function ()来创建的,所以 函数对象.[[prototype]] 指向 Function.prototype.
相关推荐
JavaScript_Prototype(源代码+中文手册)
JavaScript中prototype的使用
轻松建立有高度互动的web2.0特性的富客户端页面
javascript的prototype继承
jQuery、Mootools、Prototype三大JavaScript框架中文手册
NULL 博文链接:https://miyulano.iteye.com/blog/1678239
高清版JavaScript_prototype_pollution_attack_in_NodeJS.pdf电子书,欢迎下载,或者您不想下载也可以去我的博客主页加群获取。
prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。 prototype.js不仅是一个有很大实用价值的js库,而且有很高...
主要给大家介绍了关于Javascript中prototype与__proto__的关系的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
JavaScript中的prototype(原型)属性研究
JavaScript使用prototype定义对象类型
javascript prototype文档
资源列表: 1、CSS2.0中文帮助文档 2、prototype1.6及其1.4版中文帮助文档 3、jQuery1.2及其1.2版中文帮助文档 4、3个javascript帮助文档,但仅有一个为全中文 以上资源均由互联网收集整理,现发出来...
在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一...
javascirpt框架高级编程 源代码,官方网站过来的
NULL 博文链接:https://butterflymacro.iteye.com/blog/1271789
主要介绍了JavaScript使用prototype属性实现继承操作,结合实例形式详细分析了JavaScript使用prototype属性实现继承的相关原理、实现方法与操作注意事项,需要的朋友可以参考下
Prototype javascript框架 js and ajax 的方便