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

为什么每个javascript对象都有构造函数属性?,javascript,Javascript,只是想了解为什么每个JavaScript对象都有一个构造函数属性 是否因为对象已创建而使用构造函数属性 var MyFunc = function (name){this.name=name} var instance = new MyFunc("myclass"); 现在实例有一个构造函数属性,它引用了MyFunc本身。实例上有构造函数属性有什么用?这能回答您的问题吗 var dog1= {"a":1} function Dog () { } dog2= new Dog(); c

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

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

var MyFunc = function (name){this.name=name}

var instance = new MyFunc("myclass");

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

这能回答您的问题吗

var dog1= {"a":1}

function Dog ()
{

}


dog2= new Dog();

console.log(dog1.constructor) //function Object() { [native code]...
console.log(dog2.constructor) //function Dog()...
有时您需要知道对象是如何创建的。(更不用说prototype是一个构造函数属性)

它(远)比这个复杂:在中,没有对象默认有
构造函数
属性,但是它们的prototype(如果对象有prototype)有一个


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

我们可以使用instanceof?@GauravSingla我理解其中的区别。还有为什么需要构造函数属性。我们真的需要比较构造函数吗?@GauravSingla如果你想修改
Dog.prototype
,但你只能访问
dog2
实例,你可以使用
dog2.constructor.prototype
访问
Dog.prototype