6

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

var f = function() {};
f.ext = 1;
f.prototype.pext = 2;

当我现在使用 firebug 调试此代码时,我得到以下信息: 在此处输入图像描述

这种无限嵌套从何而来?让我们从头开始(OK=unterstood):

f(OK) -ext(OK)
-prototype (OK

-pext(OK)-constructor(
我被困在这一点上)

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

4

2 回答 2

5

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

与以下相同:

var a = {},
    b = a;
a.b = b;

你也会在这里看到无限的引用。

于 2013-02-07T21:31:49.463 回答
3

当你这样做时

Foo = function () {
    // Do something
};

那么你会有这个

Foo.prototype.constructor == Foo

Foo构造函数一样Foo

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

我推荐阅读:http ://beej.us/blog/data/javascript-prototypes-inheritance/

于 2013-02-07T21:34:23.380 回答