es6访问器用于导出类功能

时间:2015-12-13 06:35:38

标签: ecmascript-6 getter-setter aurelia

我开始使用ES7与Aurelia合作,当我需要有一个参数列表时,我无法弄清楚如何将函数公开。

这有效:

export class dummy{
  get doSomething(){
    return "something";
  }
}

dummy.doSomething()

但如果我将函数修改为有参数列表,我会收到错误:

get doSomething(x){
    ...
ERR: A 'get' accessor cannot have parameters.

我尝试了各种不起作用的东西,谷歌搜索它什么都没有。如何在接受参数并返回值的导出类中声明公共函数?

感谢。

2 个答案:

答案 0 :(得分:1)

get声明getter。它们像普通属性一样被访问(即不是方法):

var foo = instance.doSomething;

这就是为什么getter不能有参数。

如果您不想这样,但想要一个方法,请将其删除:

export class dummy{
  doSomething(x){
    return "something";
  }
}

如果您只是将该类用作“方法包”,即您不打算创建多个实例,请改用对象:

export var dummy = {
  doSomething(x){
    return "something";
  }
};

答案 1 :(得分:0)

es6中虚拟的一些例子:

dummy.js

export class Dummy{
  get myGetter() {
    return '456'
  }
}

Dummy.doSomething = (x) => {
    return "something";
}

然后

import {Dummy} from 'dummy'
console.log(Dummy.doSomething(123)); // => "something"
let myDummy = new Dummy();
console.log(myDummy.myGetter); // => "456"