Javascript无限原型链

opl*_*opl 8 javascript firebug prototype

我使用以下测试代码:

function Test() {

 }

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

    },
    b: function() {

    }
 }
Run Code Online (Sandbox Code Playgroud)

为了运行它,我只是在做:

var test = new Test();
console.debug(test);
Run Code Online (Sandbox Code Playgroud)

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

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

+MyMethod
-constructor
  -prototype
     +MyMethod
     -constructor
        -prototype
           +MyMethod
           -constructor
Run Code Online (Sandbox Code Playgroud)

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

SLa*_*aks 11

prototypes有一个名为的属性constructor,它指的是拥有原型的函数.

这个循环是设计的.


jk.*_*jk. 7

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