是否可以使用正则表达式作为JS中类的通用getter表达式?如果测试被"bar"
替换,则工作正常。
如果没有,是否有其他方法可以为类创建通用的getter?
var test = /^(?!foo).*$/;
var Foo = class {
get foo() {
return 'foo!';
}
get [test]() {
return 'the called getter was ' + this.expr;
}
}
var f = new Foo();
console.log(f.bar)
答案 0 :(得分:1)
你不能。
Chapter 12.2.6.8 of ECMAScript 2015 (6th Edition, ECMA-262)
它说:
ComputedPropertyName :[ AssignmentExpression ]
因此,它首先计算名称的值,然后将其分配给名称为
的属性这是因为getter方法只能是属性名称(14.3):
MethodDefinition : 获取 PropertyName (){FunctionBody}
属性名称只能是文字属性名称或计算属性名称(A2)
PropertyName [收益率]: