使用变量创建对象文字,如何获取它的值
use variable to create an Object literal, how to get just its value
你能解释一下为什么这个对象同时获得 variable/value 而不仅仅是它的值吗?
var a = 'foo', b = 'bar', obj = {a, b};
预计
obj = {'foo' : 'bar'}
结果
obj = {a: "foo", b: "bar"}
谢谢
在 ES5 JavaScript 中,您的代码会出现语法错误。
ES2015 JavaScript,
var obj = {a, b}
对于
来说是shorthand
var obj = { a: a, b: b }
如果你想要 {foo: "bar"}
你可以(在 ES2015 中)使用
var obj = { [a]: b }
为了与旧环境兼容,您必须使用两个语句:
var obj = {};
obj[a] = b;
原因是,您将它们添加为两个变量、成员而不是键值对。它是 expected 结果(ES6 / ES2015)或 Syntax Error(ES5,因为应该有一个键:值对,用逗号分隔)。您正在寻找的是:
obj = {};
abj[a] = b;
有趣的是,给予:
obj = {a: b};
将把a
作为新的key,而不是用a
的值代替。
尝试使用以下代码:
obj[a] = b;
这会给你:
obj = { "foo" : "bar" }
您原来的做法只是 shorthand 并将变量传递给对象,而不仅仅是它们的值
你能解释一下为什么这个对象同时获得 variable/value 而不仅仅是它的值吗?
var a = 'foo', b = 'bar', obj = {a, b};
预计
obj = {'foo' : 'bar'}
结果
obj = {a: "foo", b: "bar"}
谢谢
在 ES5 JavaScript 中,您的代码会出现语法错误。
ES2015 JavaScript,
var obj = {a, b}
对于
来说是shorthandvar obj = { a: a, b: b }
如果你想要 {foo: "bar"}
你可以(在 ES2015 中)使用
var obj = { [a]: b }
为了与旧环境兼容,您必须使用两个语句:
var obj = {};
obj[a] = b;
原因是,您将它们添加为两个变量、成员而不是键值对。它是 expected 结果(ES6 / ES2015)或 Syntax Error(ES5,因为应该有一个键:值对,用逗号分隔)。您正在寻找的是:
obj = {};
abj[a] = b;
有趣的是,给予:
obj = {a: b};
将把a
作为新的key,而不是用a
的值代替。
尝试使用以下代码:
obj[a] = b;
这会给你:
obj = { "foo" : "bar" }
您原来的做法只是 shorthand 并将变量传递给对象,而不仅仅是它们的值