Rai*_*aif 2 javascript properties class public ecmascript-6
我看到的所有类的例子都是
class myClass{
constructor(){}
someFunction(){}
Run Code Online (Sandbox Code Playgroud)
我要补充的是
someObject {myvalue:value}
}
Run Code Online (Sandbox Code Playgroud)
这似乎没有编译.一个老式的对象将是
{
somefunction: function(){}
someProperty: {myvalue:value}
}
Run Code Online (Sandbox Code Playgroud)
这在es6课程中是不可能的?
你需要把它放在你的构造函数中:
class myClass{
constructor(){
this.someObject = { myvalue:value };
}
}
var obj = new myClass();
console.log(obj.someObject.myvalue); // value
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以将对象添加到原型链中,就像在ES5中一样:
class myClass{
constructor(){
}
}
myClass.prototype.someObject = { myvalue:value };
var obj = new myClass();
console.log(obj.someObject.myvalue); // value
Run Code Online (Sandbox Code Playgroud)
请注意,类上没有真正的私有属性.您附加到类的任何变量都是公共的.
ES7中的类属性有第0阶段提案.如果使用Babel,可以使用实验模式启用,允许以下内容:
class MyClass {
myProp = {value: "one"};
constructor() {
console.log(this.myProp);
}
}
Run Code Online (Sandbox Code Playgroud)