【发布时间】:2016-10-14 14:11:43
【问题描述】:
在 es6 中为模拟静态属性的类保留属性的最佳方法是什么?
使用原型链中创建的属性是否安全?
class Employee {
constructor(name, creator) {
this.name = name;
if(! (creator in Employee.prototype)){
Employee.prototype[creator] = 0;
}
Employee.prototype[creator]++;
}
static count(creator) {
return Employee.prototype[creator];
}
}
var y = new Employee("Jack", "x");
var z = new Employee("John", "y");
var jh = new Employee("John", "y");
console.log(Employee.count('x'), Employee.count('y'));
【问题讨论】:
-
有什么意义?你可以简单地设置 Employee
Empliyee.count = 0; -
@Maxx 基本上,我只是想了解静态属性,但检查更新的第二个示例
-
你可以做到,但几乎没用。静态属性只是类上的属性,例如
Employee.count。不多不少。您对原型所做的事情绝对与静态属性无关 -
所以我可以在上面的场景中使用
Employee[creator]? -
供将来参考,假设您的代码正常工作(在这种情况下确实如此),并且您正在寻找良好的标准实践、更有效的解决方案等。这种格式的问题更适合Code Review
标签: javascript class static ecmascript-6