2014-02-13 75 views
0

我试图为什么className.proptotype.constructor = newConstructor()不会改变Javascript类的构造函数?

className.proptotype.constructor = newConstrcutor; 

更改类的构造函数此属性现指newConstructor但是当我尝试创建类的实例,仍执行旧的构造函数。那么,究竟是什么使用className.proptotype.constructor

谢谢

+0

(不,它会工作再)分配时,你不能叫'newConstructor'的[ – Bergi

+0

精确复制什么是\'构造\ '属性真的用于?](http://stackoverflow.com/questions/12622137/what-is-the-constructor-property-really-used-for),也许看看['new'操作符] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new)可以回答你的标题问题。 – Bergi

回答

1

每个构造函数都有一个指向名为prototype的对象的指针。原型是JavaScript支持在同一类型的对象之间共享属性和方法的主要机制。

另外,原型可以用来支持继承;并不完全像在Java,C#等其他OO语言中完成的那样。所以你可以想象,有一种机制允许解释器通过一个隐含地形成的链从一个原型导航到另一个。以与构造函数指向原型对象相同的方式,原型也可以指向其构造函数;您可以将其视为构造函数和原型之间的关系。

className.proptotype.constructor属性的用途之一是当您要调试您的代码。一个JavaScript调试器会明确声明一个实例的类型(它的创建构造函数)。

了解更多详情,您可以阅读本

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor

相关问题