最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Javascript infinite prototype chain - Stack Overflow

programmeradmin1浏览0评论

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?

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?

Share Improve this question asked Jan 19, 2011 at 21:14 oplopl 1,1572 gold badges9 silver badges8 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 16

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)

  1. 暂无评论