Javascript无限原型链

时间:2011-01-19 21:14:50

标签: javascript prototype firebug

我使用以下测试代码:

function Test() {

 }

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

    },
    b: function() {

    }
 }

要运行它,我只是在做:

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

在firebug控制台中,我展开了打印的对象并查看__proto__内部:

在那里找到一个看似无穷无尽的构造函数链 - >原型:

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

等等。我在这里做错了吗?为什么原型链似乎无休止?

2 个答案:

答案 0 :(得分:9)

prototype有一个名为constructor的属性,它引用拥有原型的函数。

这个循环是设计的。

答案 1 :(得分:6)

原型的构造函数返回自身,因此当你展开它时,你只是一遍又一遍地打开相同的结构。它实际上并不是“无限的”。