function Test()
{
this.name = 'test name';
}
console.log(Test.prototype.constructor.prototype.constructor);
我不明白为什么这是一个无限链constructor
- prototype
?
我的意思是这个链的目的是什么,为什么没有尽头,原型有构造函数,构造函数有原型,它是一个循环链,构造函数每次都是一样的,无法想象......
function Test()
{
this.name = 'test name';
}
console.log(Test.prototype.constructor.prototype.constructor);
我不明白为什么这是一个无限链constructor
- prototype
?
我的意思是这个链的目的是什么,为什么没有尽头,原型有构造函数,构造函数有原型,它是一个循环链,构造函数每次都是一样的,无法想象......
好吧,默认情况下,每个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
这是期望的行为。原型的constructor
属性是指拥有原型的对象(因此它指回自身)。