时间:2016-11-29 20:58:32

标签: javascript es6-class

我刚接触使用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类或者其他东西,但我不能,因为它已经扩展基类。

问题:如何在已经扩展另一个类的类中组织我的方法sortresize? (或者这是非标准的,如果是这样,请提供正确的方法。)

1 个答案:

答案 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.