我在一个关于函数对象的constructor
属性的博客上发现了这一行:
函数Object的prototype属性具有设置为函数本身的构造函数属性
含义,以下函数对象
function Student(name,age) {
this.name = name;
this.age = age;
}
将拥有以下原型
{constructor : Student}
function Student() {
}
console.log(Student.prototype);
console.log(Student.prototype.constructor);
console.log(Student.prototype.constructor.prototype);
console.log(Student.prototype.constructor.prototype.constructor);
console.log(Student.prototype.constructor.prototype.constructor.prototype);

这意味着原型具有constructor
属性,该属性设置为具有相同原型对象的函数本身。这有什么原因,或者它只是一种语言功能。我在这里找不到任何循环引用的理由。
任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
prototype.constructor
属性设置为引用构造函数,以便该构造函数实例化的对象可以检查用于创建它们的构造函数。
答案 1 :(得分:0)
是的,这只是一种语言功能。一个非常有用的:
.prototype
创建新实例时,构造函数的new
引用用于设置继承.constructor
引用可用于从实例访问“类”,例如创建克隆,重新初始化实例,访问类名,或仅用于检查值。