javascript - 在 Javascript 中继承静态属性

标签 javascript class inheritance properties static

我在当前项目中使用的设计模式是:

var MyConstructor = function() { ... };
MyConstructor.STATIC_PROPERTY = 'static';

现在如果我想从 MyConstructor 类继承,我会这样做:

var ChildClass = function() { ... };
ChildClass.prototype = new MyConstructor(); // Or Object.create(...)
ChildClass.prototype.constructor = ChildClass;

问题是 ChildClass.STATIC_PROPERTY 未定义/未继承 ...

有办法解决吗?

次要问题:

如果我 console.log(MyConstructor),我会得到 function() { ...} 而关于 MyConstructor.STATIC_PROPERTY 当它实际存在时。 STATIC_PROPERTY 最后存储在哪里?如何检查/显示它?

最佳答案

使用 ES6 class,它的原型(prototype)是从父类(构造函数对象)继承的:

function MyConstructor() { /* … */ }
MyConstructor.STATIC_PROPERTY = 'static';

class ChildClass extends MyConstructor { /* … */ }
console.log(ChildClass.STATIC_PROPERTY);

另一种方法是复制所有属性(如使用 Object.assign)或在 ChildClass 上使用 Object.setPrototypeOf

关于javascript - 在 Javascript 中继承静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58101101/

相关文章:

class - 如果 uml 类图中的条件?

c# - 注入(inject)继承

javascript - Google GEOchart,如何删除 map 键

javascript - 增加nodejs管道的最大字节大小

c++ - 无法从另一个命名空间创建类的实例?

java - 类对象比较 - equals 方法输出错误

javascript - 使用 CDN(即 Rackspace)托管网站 Javascript 和 CSS - 更快的页面加载?

javascript - 如何在javascript中组合两个id

java - 如何在子类对象上调用父类(super class)方法?

entity-framework - 每个类型的 Entity Framework 表性能