我看到的所有类的例子都是
class myClass{
constructor(){}
someFunction(){}
我想要添加的是
someObject {myvalue:value}
}
这似乎没有编译。一个老式的对象将是
{
somefunction: function(){}
someProperty: {myvalue:value}
}
这在es6课程中是不可能的吗?
答案 0 :(得分:6)
您需要将它放在构造函数中:
class myClass{
constructor(){
this.someObject = { myvalue:value };
}
}
var obj = new myClass();
console.log(obj.someObject.myvalue); // value
如果需要,您可以将对象添加到原型链中,就像在ES5中一样:
class myClass{
constructor(){
}
}
myClass.prototype.someObject = { myvalue:value };
var obj = new myClass();
console.log(obj.someObject.myvalue); // value
请注意,类上没有真正的私有属性。您附加到类的任何变量都是公共的。
Class Properties in ES7有一个0阶段提案。如果使用Babel,可以使用实验模式启用,允许以下内容:
class MyClass {
myProp = {value: "one"};
constructor() {
console.log(this.myProp);
}
}
答案 1 :(得分:3)
有一种简单的方法来模拟属性:getters。
var obj = {myvalue:value};
class Foo {
get someProperty() {
return obj;
}
}
完全使用它是否有意义取决于用例。