Javascript infinite prototype chain

余生颓废 提交于 2019-12-05 20:33:31

问题


I am using the following test code:

function Test() {

 }

 Test.prototype.MyMethod =  {
    a: function() {

    },
    b: function() {

    }
 }

And to run it I'm simply doing:

var test = new Test();
console.debug(test);

In the firebug console, I expand the object that was printed and look inside of __proto__:

In there find a seemingly unending chain of constructor -> prototype:

+MyMethod
-constructor
  -prototype
     +MyMethod
     -constructor
        -prototype
           +MyMethod
           -constructor

and so on. Did I do something wrong here? Why does the prototype chain seem unending?


回答1:


prototypes have a property called constructor that refers to the function that owns the prototype.

This cycle is by design.




回答2:


The prototype's constructor refers back to itself, so as you 'unfold' it, you are just opening the same structure over and over again. It is not actually 'infinite.'



来源:https://stackoverflow.com/questions/4740849/javascript-infinite-prototype-chain

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!