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

最近看js原型的问题,基本上已经理解,但是在控制台打开发现很奇怪的问题,举个例子

function Persion(){}; 

var persion1 = new Persion(); 

persion1;

在控制输入一下代码,按理说

persion1.__proto__ = Persion.prototype 

Persion.prototype 原型对象的构造器 指向 Persion(), 而构造函数 Persion里prototype又指向 原型对象,
js中是这样无线循环指向下去吗?是我理解有问题吗?

https://img4.mukewang.com/5c25f95b000194d605250612.jpg

这是网上找的一副图,问题就在红色的那部分,这部分循环指向啊

https://img1.mukewang.com/5c25f9660001ce0d06630322.jpg

胡说叔叔
浏览 463回答 1
1回答

慕少森

首先明确两个概念,引用变量 和 对象,在那一大段引用变量的互相引用中其实只涉及到两个对象我们姑且把他们称为对象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继续“相互引用了”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript