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