2014-10-03 111 views
0

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

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

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

var instance = new MyFunc("myclass"); 

现在实例有一个构造函数属性,它具有对MyFunc本身的引用。什么是具有实例的构造函数属性的用法?

回答

0

这是回答您的问题吗?

var dog1= {"a":1} 

function Dog() 
{ 

} 


dog2= new Dog(); 

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

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

+0

我们可以使用instanceof? – 2014-10-03 12:27:33

+0

@GauravSingla http://stackoverflow.com/questions/18172902/difference-between-instanceof-and-constructor-property – 2014-10-03 12:28:55

+0

我明白不同之处。仍然为什么需要构造函数属性。我们真的需要比较构造函数吗? – 2014-10-03 12:33:33

1

这是(多)复杂多了:没有对象,在,JS有一个constructor属性默认,但它们的原型(如果该对象已具雏形)有一个。

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

相关问题