javascript constructor属性

来源:互联网 发布:python append和extend 编辑:程序博客网 时间:2024/06/10 03:35

前面讲到原型属性与实例属性,在此我不得不提constructor属性,为了更深入了解constructor属性,我查了一些资料,下面我们来看看一个实例。

function Person() {// some code}
javascript内部会自动执行如下几个动作:1.为Person()函数添加一个原形(即 prototype)属性 ;2.为 prototype 对象额外添加一个 constructor 属性,并且该属性保存指向函数Person的一个引用;

这样当我们把函数 Person ()作为自定义构造函数来创建对象的时候,对象实例内部会自动保存一个指向其构造函数(这里就是我们的自定义构造函数 Person())的 prototype 对象的一个属性proto.(关于其属性可以查看:https://msdn.microsoft.com/zh-cn/library/dn342818(v=vs.94).aspx)

在每一个对象实例中就可以访问构造函数的 prototype 所有拥有的全部属性和方法.就好像它们是实例自己的一样,当然该实例也有一个 constructor属性了(从 prototype 那里获得的),每一个对象实例都可以通过 constrcutor访问它的构造函数。
var person1=new Person();var person2=new Person(); 

上面这两个对象都有一个constructor属性,该属性指向Person.

document.write(person1.constructor===Person)  //output: truedocument.write(person1.constructor===Person.prototype.constructor);  //output: true

参考资料:
《javascript高级程序设计》
http://blog.csdn.net/zengyonglan/article/details/53465505