gpt4 book ai didi

javascript - 键值对初始化不适用于变量?

转载 作者:行者123 更新时间:2023-11-29 16:31:31 25 4
gpt4 key购买 nike

我试图理解为什么这两行代码的行为表现不同,我还尝试使用示例二中的变量创建示例一中的行为,请参阅下面的示例:

  var kv = {
'abc': 'moon',
};
Browser.msgBox(kv['abc']);

按预期返回月球。

  var f = 'abc';
var r = 'moon';
var kv2 = {
f: r,
};
Browser.msgBox(kv2[f]);

返回未定义。

最佳答案

在第二个示例中,您将创建 kv2 作为一个 对象,并具有名为 f 的唯一属性

var f = 'abc';
var r = 'moon';
var kv2 = {
f: r,
};

console.log(kv2);
console.log(kv2.f);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

新的 ECMAScript (ES6) 包含一个名为 computed property names 的功能这足以满足您想要做的事情,即使用存储在某个变量中的属性名称。示例:

var f = 'abc';
var r = 'moon';
var kv2 = {
[f]: r, // Using computed property name!
};

console.log(kv2);
console.log(kv2[f]);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

但是,从 wikipedia 中,您可以看到此功能不适合您:

Apps Script is a scripting language for light-weight application development in the G Suite platform. It is based on JavaScript 1.6 with some portions of 1.7 and 1.8 and provides subset of ECMAScript 5 API.

因此,如果您仍然想使用存储在变量中的属性名称,您能做的最好的事情是:

var f = 'abc';
var r = 'moon';
var kv2 = {};
kv2[f] = r;

console.log(kv2);
console.log(kv2[f]);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

关于javascript - 键值对初始化不适用于变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55973219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com