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

时间:2014-10-03 12:19:55

标签: javascript

试图理解为什么每个JavaScript对象都有构造函数属性。

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

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

var instance = new MyFunc("myclass");

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

2 个答案:

答案 0 :(得分:1)

比那更复杂:没有对象,在JS中默认具有constructor属性,但是他们的原型(如果对象有原型)有一个

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

答案 1 :(得分:0)

这是否回答了你的问题?

var dog1= {"a":1}

function Dog ()
{

}


dog2= new Dog();

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

有时你需要知道对象是如何创建的。 (更不用说原型是一个构造函数属性)