【问题标题】:Why className.proptotype.constructor = newConstructor() does not change the constructor of Javascript Class?为什么 className.proptotype.constructor = newConstructor() 不会改变 Javascript Class 的构造函数?
【发布时间】:2014-03-12 04:06:20
【问题描述】:

我尝试通过

改变一个类的构造函数
className.proptotype.constructor = newConstrcutor; 

这个属性现在引用 newConstructor 但是当我尝试创建类的实例时,仍然执行旧的构造函数。那么,className.proptotype.constructor究竟有什么用呢?

谢谢

【问题讨论】:

标签: javascript javascript-framework


【解决方案1】:

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

另外,原型可以用来支持继承;与其他 OO 语言(如 Java、c# 等)的实现方式不同。因此,您可以想象有一种机制允许解释器通过隐式形成的链从一个原型导航到另一个原型。

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

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

更多细节你可以阅读这篇

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

【讨论】:

    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 2012-08-10
    • 2016-09-22
    • 2011-10-22
    • 2018-03-25
    • 2013-10-29
    • 2015-03-16
    • 2015-02-22
    相关资源
    最近更新 更多