1
function Test()
{
    this.name = 'test name';
}


console.log(Test.prototype.constructor.prototype.constructor);

我不明白为什么这是一个无限链constructor- prototype

我的意思是这个链的目的是什么,为什么没有尽头,原型有构造函数,构造函数有原型,它是一个循环链,构造函数每次都是一样的,无法想象......

4

2 回答 2

3

好吧,默认情况下,每个Function Object.prototype都有一个属性,该属性引用此函数的原型对象(仅在用作构造函数时才重要)。

每个prototype object默认情况下都有一个对该constructor函数的引用,当然,它指向构造函数(在你的情况下Test())。

所以,我们走吧

Test.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor.prototype.constructor
于 2013-04-25T17:38:38.550 回答
0

这是期望的行为。原型的constructor属性是指拥有原型的对象(因此它指回自身)。

于 2013-04-25T17:41:16.453 回答