原型对象和对象原型以及原型链

 我来答
一袭可爱风1718
2022-07-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6487
采纳率:99%
帮助的人:36.4万
展开全部
1.原型就是原型对象------prototype    作用就是:共享方法。

每一个构造函数都有一个 prototype 属性,指向另一个 对象 , 构造函数通过原型分配的函数是所有对象所共享的 。由于在构造函数中定义的方法在创建实例时,都会开辟一个新的内存从而造成内存浪费的问题,这时我们就可以把那些不变的方法直接定义在prototype对象上,这样所有的对象的实例就可以共享这些方法。

2.对象原型__proto__

对象都会有一个__proto__属性,指向 构造函数的prototype 原型对象 ,之所以我们对象可以使用原型对象的属性和方法,就是因为对象有__proto__原型的存在。

①实例.__proto__和构造函数.prototype是等价的

②方法的查找规则: 首先看实例对象上是否存在这个方法,如果存在就调用实例本身的方法,如果没有就去构造函数原型对象上去查找,如果还是没有就继续向Object.prototype中查找,直到返回null (就近原则)

③__proto__对象原型的意义就在于为对象的查找机制提供一个方向,它是一个非标准属性,因此实际开发中不可以使用这个属性,它只是内部指向原型对象。

对象原型 和构造函数 原型对象 里面都有一个属性:constructor。我们称 为构造函数 ,因为它 指回构造函数本身。

而__proto__原型的constructor也是同样指向的是构造函数 ,是通过 实例.__proto__ 先指向 原型对象 然后再 通过 constructor指向构造函数

很多情况下,我们需要 手动 的利用constructor这个属性 指回原来的构造函数 ,例如,我们修改了原来的原型对象, 给原型对象赋值的是一个对象 ,那么就必须手动的利用constructor指回原来的构造函数。在对象中写: constructor:目标构造函数。

①只要是 对象 就 有__proto__ 原型,指向 原型对象

② 实例 的原型对象里面的 __proto__ 原型指向的是 Object.prototype

③ Object.prototype 里面的 __proto__ 原型指向的是 null

④由__proto__原型连接而成的'链子'就是原型链
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式