我正在使用io.js 2.xx测试ES 6中的类 我从Mozilla拿到的例子, 事情正在上升(JS中的OOp), 至少我们现在有直接继承(在语法级别) '延伸'指示... 我提出的问题是成员属性是在构造函数中定义的 这至少是一个语法问题...... (通过网络搜索,发现很少有关于此的信息) 当ESxx试图向财产成员提供可见性指令时(在不久的将来我猜),这将是一个更大的问题。
无论如何,现在...... 如何声明共享/静态属性?
// example from Mozilla
class Polygon
{
constructor(height, width)
{
this.name = 'Polygon';
this.height = height;
this.width = width;
}
}
class Square extends Polygon
{
constructor(length)
{
super(length, length);
this.name = 'Square';
}
}
答案 0 :(得分:1)
您仍然可以使用旧语法向构造函数(静态属性)或原型(预定义实例属性)添加属性
class Foo {
constructor() {
}
}
Foo.bar = 'bar';
Foo.prototype.baz = 'baz';
console.log(Foo.bar) // 'bar'
console.log(new Foo().baz) // 'baz'
它会起作用。看example on babel-repl
答案 1 :(得分:1)
您可以使用 getters 定义静态或原型属性:
class Foo {
static get bar() {
return 42;
}
get bar() {
return 21;
}
}
它并不理想,但它确实有效。