0

我是使用 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(或者这是非标准的,如果是,请提供正确的方法。)

4

1 回答 1

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');
    }
}

创建没有类型的对象。

这是关于 ES6 类的指南,应该可以回答您的其他问题。

于 2016-11-29T21:27:30.697 回答