每个类单独的继承静态成员
Inheritance static member separate for each class
类A和类B持有对配置成员的相同地址引用。我怎么把它们分开呢?
class ConfigModel {
public static config = []
public foo() {
//Code
}
}
class A extends ConfigModel {
}
class B extends ConfigModel {
}
您可以尝试以下操作:
class ConfigModel {
static get config () {
return this._config = this._config || [];
}
}
class A extends ConfigModel {
}
class B extends ConfigModel {
}
A.config.push(1);
B.config.push(2);
console.log(A.config); // [1]
console.log(B.config); // [2]
它所做的只是在第一次访问时动态地定义静态属性。希望能有所帮助!
可以将ConfigModel
的静态数组克隆为A
和B
的新静态成员:
class ConfigModel {
public static config = [1, 2];
}
class A extends ConfigModel {
public static config = ConfigModel.config.slice(0);
}
class B extends ConfigModel {
public static config = ConfigModel.config.slice(0);
}
console.log(ConfigModel.config); // [1, 2]
console.log(A.config); // [1, 2]
console.log(B.config); // [1, 2]
A.config.push(3);
console.log(ConfigModel.config); // [1, 2]
console.log(A.config); // [1, 2, 3]
console.log(B.config); // [1, 2]
B.config.pop();
console.log(ConfigModel.config); // [1, 2]
console.log(A.config); // [1, 2, 3]
console.log(B.config); // [1]
(code in playground)
相关文章:
- Javascript静态成员
- Javascript 静态方法继承
- JavaScript 中的静态自成员
- 如何访问实例上的静态成员
- 如何继承静态方法
- 类的方法 - 静态成员
- 如何让每个实例继承其自己的成员实例
- Javascript 中的静态变量继承 (ES6)
- 使用经典继承,在 JavaScript 中使用“类级”/成员变量是一个好主意还是坏主意
- 在JavaScript中声明私有静态成员变量
- Javascript继承静态和实例方法/属性
- 如何在AS3或JavaScript中访问类的静态成员的名称?
- 每个类单独的继承静态成员
- 静态成员继承的解决方法
- 如何在javascript中获得一些类的所有静态成员的列表
- 使用另一个文件覆盖静态成员
- 类有静态成员' name '时出现类型错误
- Sencha Touch 2:扩展XTemplate-我可以继承parents成员函数吗
- javascript中的静态成员
- Javascript: '静态成员'