为了账号安全,请及时绑定邮箱和手机立即绑定

JAVASCRIPT 构造函数和原型互相指向问题?求助!!!

JAVASCRIPT 构造函数和原型互相指向问题?求助!!!

胡说叔叔 2018-11-13 18:19:30
最近看js原型的问题,基本上已经理解,但是在控制台打开发现很奇怪的问题,举个例子function Persion(){}; var persion1 = new Persion(); persion1;在控制输入一下代码,按理说persion1.__proto__ = Persion.prototype Persion.prototype 原型对象的构造器 指向 Persion(), 而构造函数 Persion里prototype又指向 原型对象,js中是这样无线循环指向下去吗?是我理解有问题吗?这是网上找的一副图,问题就在红色的那部分,这部分循环指向啊
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

首先明确两个概念,引用变量 和 对象,在那一大段引用变量的互相引用中其实只涉及到两个对象
我们姑且把他们称为对象ObjP(原型对象)和对象Objf(函数对象)
对象objf中有一个属性p指向objp,q的内存结构有两部分,一部分保存着它的属性名“p”,另一部分保存着objp的地址。
同样,对象objp中有一个属性f指向objf。

打个比方,两个手机A,B,互相存着对方的手机号b,a。A可以通过A.b打给B,B可以通过B.a打给A,他们之间可以来回打无数次电话,但只存在两个手机。它们之间存在互相的联系,但联系本身占用的资源是很少的。只有打电话的时候才会产生附加的资源消耗。
我们看到的结构对浏览器是没有意义的,它只是把联系具象化给咱们看。就像如何向别人证明A存着B的手机号,当着你的面打个电话。你倒好,老让人家来回打。其实你不去继续往下点时,浏览器就不会去做那么无聊的事。
至于着“互相引用”什么时候到头?,没有所谓的头,存手机号就是一下的事儿,被逼着老来回打电话才是最痛苦的。
换句话说,等你不在往下点时浏览器就不用为了应付你让objp和objf继续“相互引用了”


查看完整回答
反对 回复 2018-12-28
  • 1 回答
  • 0 关注
  • 462 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号