var fooS:String = 'foo';
var barO:Object = { ('' + fooS): 'bar' };
for (var key:String in barO)
{
trace(key, barO[key]);
}
(打印'foo bar')
但是尝试在ASC2.0中执行此操作会导致
'(' is not allowed here
错误。
有什么想法吗?
我知道我总是可以通过方括号访问设置带动态变量的键,但是任何时候我都必须这样做
var fooS:String = 'foo';
var a:Object = {};
a[fooS] = 'bar';
我发现它相当过度和浪费。
答案 0 :(得分:0)
AS3符合ECMA第4版。 在此版本中,没有“内联”方式来生成密钥。 如您所说,可以使用以下代码:
var object:Object = {};
object['some' + 'dynamic' + 'key'] = 'some value';
唯一的选择是创建自己的API,可能如下所示:
var map:Map = new Map().put('some' + 'dynamic' + 'key', 'some value');
其中Map.put()返回“this”