【发布时间】:2019-05-03 15:46:48
【问题描述】:
我试图理解为什么这两行代码的行为表现不同我还试图使用示例二中的变量来创建示例一中的行为,请参见下面的示例:
var kv = {
'abc': 'moon',
};
Browser.msgBox(kv['abc']);
按预期返回月球。
var f = 'abc';
var r = 'moon';
var kv2 = {
f: r,
};
Browser.msgBox(kv2[f]);
返回未定义。
【问题讨论】:
-
在第二个例子中,使用
var kv2 = {[f]: r};阅读computed property names。否则,您的密钥名称将是f,您将不得不这样做Browser.msgBox(kv2["f"]); -
@Shidersz Google 应用程序脚本当前使用旧版本的 Ecmascript,因此(尚)不支持计算的属性名称。
-
@DimuDesigns 哦,我明白了,在这种情况下,如果他仍想使用变量中的
key和value,他将需要执行var kv2 = {}; kv2[f] = r;。 -
@Shidersz 没错!
-
相关解释请看我的回答:stackoverflow.com/a/51732281/9337071
标签: javascript google-apps-script