为什么每个javascript对象都有构造函数属性

why every javascript object has constructor property?

本文关键字:构造函数 属性 对象 javascript 为什么      更新时间:2023-09-26

只是想了解为什么每个JavaScript对象都有构造函数属性。

是否因为已经创建了对象而使用了构造函数属性?

var MyFunc = function (name){this.name=name}
var instance = new MyFunc("myclass");

现在实例有一个构造函数属性,它引用了MyFunc本身。在实例上拥有构造函数属性有什么用?

它(比这复杂得多):没有对象,在中,JS默认有constructor属性,但他们的原型(如果对象有原型)有一个。

此外,请注意:constructor引用了一个函数,但这个原型属性不是只读的,因此可以很容易地更改属性,因此不要依赖它。

这能回答您的问题吗?

var dog1= {"a":1}
function Dog ()
{
}

dog2= new Dog();
console.log(dog1.constructor) //function Object() { [native code]...
console.log(dog2.constructor) //function Dog()...

有时您需要了解对象是如何创建的。(更不用说原型是构造函数属性)