Javascript Firebug显示构造函数的无限递归

Javascript Firebug显示构造函数的无限递归,javascript,firebug,Javascript,Firebug,我想深入研究javascript的特定于语言的构造“原型”。 这是我的学习目的代码: var f = function() {}; f.ext = 1; f.prototype.pext = 2; 当我现在用firebug调试这段代码时,我得到以下结果: 这种无限的筑巢从何而来? 让我们从顶部开始(OK=unterstood): f(好) -分机(正常) -原型(正常) -pext(正常) -构造器(我被困在这一点上) 那是谁的构造函数?为什么我们会有这种infinte嵌套?这仅仅是因为f=

我想深入研究javascript的特定于语言的构造“原型”。 这是我的学习目的代码:

var f = function() {};
f.ext = 1;
f.prototype.pext = 2;
当我现在用firebug调试这段代码时,我得到以下结果:

这种无限的筑巢从何而来? 让我们从顶部开始(OK=unterstood):

f(好)
-分机(正常)
-原型(正常)
-pext(正常)
-构造器(我被困在这一点上)


那是谁的构造函数?为什么我们会有这种infinte嵌套?

这仅仅是因为
f==f.prototype.constructor
,它们是相同的,Firebug将它们显示为循环引用

同:

var a = {},
    b = a;
a.b = b;
您将在此处看到无限引用。

执行此操作时

Foo = function () {
    // Do something
};
那你就要这个了

Foo.prototype.constructor == Foo
因为
Foo
Foo
的构造函数:

var foo = new Foo(); // <-- Foo is the constructor.

var foo=new foo();//我认为这是因为匿名函数的原型是匿名函数。由于您在函数的原型上设置了一个属性,所以它在函数的原型上设置了该属性,而函数的原型上设置了一个属性……等等。但不确定:)