用于导出 class 函数的 es6 访问器
es6 accessor for export class function
我开始使用带有 ES7 的 Aurelia,但我不知道如何在需要参数列表时创建一个函数 public。
这个有效:
export class dummy{
get doSomething(){
return "something";
}
}
dummy.doSomething()
但是如果我将函数修改为具有参数列表,则会出现错误:
get doSomething(x){
...
ERR: A 'get' accessor cannot have parameters.
我尝试了很多方法都没有用,谷歌搜索也没有结果。如何在接受参数和 returns 值的导出 class 中声明 public 函数?
谢谢。
get
声明一个 getter。它们像普通属性一样访问(即不是方法):
var foo = instance.doSomething;
这就是 getter 不能有参数的原因。
如果您不想要那个,而是想要一个方法,请将其删除:
export class dummy{
doSomething(x){
return "something";
}
}
如果您只是将 class 用作 "method bag",即您不打算创建它的多个实例,请改用对象:
export var dummy = {
doSomething(x){
return "something";
}
};
es6 中 dummy 的一些例子:
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"
我开始使用带有 ES7 的 Aurelia,但我不知道如何在需要参数列表时创建一个函数 public。
这个有效:
export class dummy{
get doSomething(){
return "something";
}
}
dummy.doSomething()
但是如果我将函数修改为具有参数列表,则会出现错误:
get doSomething(x){
...
ERR: A 'get' accessor cannot have parameters.
我尝试了很多方法都没有用,谷歌搜索也没有结果。如何在接受参数和 returns 值的导出 class 中声明 public 函数?
谢谢。
get
声明一个 getter。它们像普通属性一样访问(即不是方法):
var foo = instance.doSomething;
这就是 getter 不能有参数的原因。
如果您不想要那个,而是想要一个方法,请将其删除:
export class dummy{
doSomething(x){
return "something";
}
}
如果您只是将 class 用作 "method bag",即您不打算创建它的多个实例,请改用对象:
export var dummy = {
doSomething(x){
return "something";
}
};
es6 中 dummy 的一些例子:
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"