为什么每个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();
console.log(dog1.constructor) //function Object() { [native code]...
console.log(dog2.constructor) //function Dog()...
有时你需要知道对象是如何创建的。 (更不用说原型是一个constructor属性)
答
这是(多)复杂多了:没有对象,在,JS有一个constructor
属性默认,但它们的原型(如果该对象已具雏形)有一个。
此外,请注意:constructor
引用了一个函数,但此原型属性不是只读的,因此可以轻松更改属性,因此不要依赖它。
我们可以使用instanceof? – 2014-10-03 12:27:33
@GauravSingla http://stackoverflow.com/questions/18172902/difference-between-instanceof-and-constructor-property – 2014-10-03 12:28:55
我明白不同之处。仍然为什么需要构造函数属性。我们真的需要比较构造函数吗? – 2014-10-03 12:33:33