我刚接触使用ES6 classes
,我试图弄清楚如何在我为Table
创建的类中对方法进行分组,以便排序,调整大小等方法,等...
class Table extends someClass{
myMethods(){
//BLAH
}
var column={
sort:()=>{
console.log('firing');
},
resize:{
mousedown:()=>{
},
mousemove:()=>{
},
mouseup:()=>{
},
mouseout:()=>{
}
}
},
var cells={
edit:()=>{
console.log('firing');
}
}
}
//错误(意外标识符)
问题是Table
类已经扩展了(默认基类)someClass
,我会说扩展Column
类或者其他东西,但我不能,因为它已经扩展基类。
问题:如何在已经扩展另一个类的类中组织我的方法sort
,resize
? (或者这是非标准的,如果是这样,请提供正确的方法。)
答案 0 :(得分:0)
您的代码无效,因为您在类体中使用了var
关键字。您只能在类主体中拥有方法。您可以通过在方法中为它们设置值来为类创建属性。例如:
class Table extends someClass {
constructor() {
this.column = {
sort: () => {
console.log('firing');
},
resize: () => {
console.log('firing');
}
};
this.cells = {
edit: () => {
console.log('firing');
}
}
}
myMethods() {
//BLAH
}
}
现在你可以访问这样的方法:
var table = new Table();
table.column.sort();
此class Table
语法声明类型为Table
的类。 {}
语法,例如:
{
edit: () => {
console.log('firing');
}
}
创建没有类型的对象。
Here's a guide on ES6 classes which should answer your other questions.