使用变量创建一个对象文字,如何只获取其值

use variable to create an Object literal, how to get just its value

本文关键字:获取 变量 创建 一个对象 文字      更新时间:2023-09-26

你能解释一下为什么这个对象同时获得变量/值而不仅仅是它的值吗?

var a = 'foo', b = 'bar', obj = {a, b}; 

预期

obj = {'foo' : 'bar'}

结果

obj = {a: "foo", b: "bar"}

谢谢

在 ES5 JavaScript 中,你的代码将是一个语法错误。

在 ES2015 JavaScript 中,

var obj = {a, b}

是 的简写

var obj = { a: a, b: b }

如果你想要{foo: "bar"}你可以(在ES2015中)使用

var obj = { [a]: b }

为了与旧环境兼容,您必须使用两个语句:

var obj = {};
obj[a] = b;

原因是,您将它们添加为两个变量,成员而不是键值对。它是预期结果(ES6/ES2015)或语法错误(ES5,因为应该有一个键:用逗号分隔的值对)。您正在寻找的是:

obj = {};
abj[a] = b;

需要注意的有趣事情是,给予:

obj = {a: b};

a作为新键,而不是替换为 a 的值。

尝试使用以下代码:

obj[a] = b;

这将为您提供:

obj = { "foo" : "bar" }

您最初的操作方式只是速记并将变量传递给对象,而不仅仅是它们的值