在 javascript 中,是否可以使用计算属性名称字符串的表达式来构造对象文字?

发布于 2024-08-12 07:33:10 字数 202 浏览 10 评论 0原文

即是否可以这样做:

var fruit = "banana";
var x = {
    "app" + "le" : 5, // "apple" : 5
    function(){return "orange"} : 8, // "orange" : 8
    "" + fruit : 3 // "banana" : 3
};

i.e. is it possible to do this:

var fruit = "banana";
var x = {
    "app" + "le" : 5, // "apple" : 5
    function(){return "orange"} : 8, // "orange" : 8
    "" + fruit : 3 // "banana" : 3
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小鸟爱天空丶 2024-08-19 07:33:10

不,你不能,你需要在第一次初始化后喂它:

var myKeyName = "bar";
x[myKeyName] = "foo";

No, you can't, you need to feed it after the first initialization :

var myKeyName = "bar";
x[myKeyName] = "foo";
水染的天色ゝ 2024-08-19 07:33:10

您需要声明空对象并在之后构建字符串。
对象文字需要其名称的有效字符串

如果您不运行“orange”函数并定义它,
您想要的名称“orange”将是整个函数的字符串。

var fruit = "banana";
var x = {};
x["app" + "le"]=5;
x[(function(){return "orange"})()]=8;
x[fruit]=3;

/* returns  x={
    apple: 5,
    banana: 3,
    orange: 8
}

You need to declare the empty object and build the strings after.
An object literal expects valid strings for its names

If you don't run the function for 'orange' as well as define it,
the name you want to be 'orange' will be the string of the entire function instead.

var fruit = "banana";
var x = {};
x["app" + "le"]=5;
x[(function(){return "orange"})()]=8;
x[fruit]=3;

/* returns  x={
    apple: 5,
    banana: 3,
    orange: 8
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文