开发者

Javascript infinite prototype chain

开发者 https://www.devze.com 2023-02-05 08:44 出处:网络
I am using the following test code: function Test() { } Test.prototype.MyMethod ={ a: function() { }, b: function() {

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?


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

This cycle is by design.


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.'

0

精彩评论

暂无评论...
验证码 换一张
取 消