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

时间:2014-02-13 10:29:01

标签: javascript javascript-framework

我尝试用

更改类的构造函数
className.proptotype.constructor = newConstrcutor; 

此属性现在引用newConstructor,但是当我尝试创建类的实例时,仍然会执行旧的构造函数。那么, className.proptotype.constructor 的确切用途是什么?

由于

1 个答案:

答案 0 :(得分:1)

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

此外,原型可用于支持继承;并不完全像在Java,c#等其他OO语言中那样完成。所以你可以想象有一种机制允许解释器通过隐式形成的链从一个原型导航到另一个原型。

与构造函数指向原型对象的方式相同,原型也可以指向其构造函数;您可以将其视为构造函数和原型之间的关系。

className.proptotype.constructor属性的一个用途是当您要调试代码时。 JavaScript调试器会清楚地说明实例的类型(它是从中创建的构造函数)。

有关详细信息,请阅读此内容

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