javascript原型构造函数混淆

时间:2013-04-25 17:33:42

标签: javascript

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


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

我无法理解为什么这是constructor - prototype的无限链?

我的意思是这个链的目的是什么,为什么没有结束,原型有一个构造函数,构造函数有一个原型,它是一个循环链,而构造函数每次都是相同的,无法想象。 ..

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

这是一种理想的行为。 原型的constructor属性是指拥有原型的对象(因此它引用自身)。