Sea*_*nch 4 javascript class ecmascript-6
我有一个看起来像这样的课程:
class Foo {
constructor(arg1, arg2) {
// ...
this._some_obj = new SomeObj({
param1: arg1,
param2: arg2
});
}
// ...
}
module.exports = Foo;
Run Code Online (Sandbox Code Playgroud)
现在我想做同样的事情,但是_some_obj
在类的所有实例之间共享.
在搜索之后,我不清楚在ES6中这样做的正确方法.
从ES5中可以看出,您可以将它放在类的原型对象上:
export class Foo {
constructor(arg1, arg2) {
…
}
…
}
Foo.prototype._some_obj = new SomeObj({
param1: val1,
param2: val2
});
Run Code Online (Sandbox Code Playgroud)
或直接打开Foo
,如果您不需要将其作为实例上的属性进行访问.
用于static
具有类属性。
class MyClass {
static myStaticProp = 42;
constructor() {
console.log(MyClass.myStaticProp); // Prints '42'
}
}
Run Code Online (Sandbox Code Playgroud)
注意:这是Babel中已经实现的功能,但仍处于实验阶段,仅在第一个提案阶段。