【发布时间】:2015-10-22 11:26:18
【问题描述】:
我想为对象属性提供一个值,但它来自另一个对象。情况是这样的:
c.query('SELECT `' + field + '` FROM `table` WHERE `' + field + '` = :' + field,
{ field: value })
.on('result', function(res) {
res.on('row', function(row) {
callback(inspect(row));
});
});
我想以发送对象{field: 'someField', value: 'someValue'} 的方式自动化它,并在上面代码的第二行中使用引用来设置对象的属性。
我想出了这个代码:
var a = {
field: 'email',
value: 'john.doe@gmail.com'
};
var b = {
[a.field]: a.value
};
console.log(b);
它在这里工作:jsFiddle,但在实际的 node.js 服务器脚本中它返回错误unexpected token "[" 所以它就像我无法从另一个对象属性引用设置对象属性。有人有什么想法吗?
【问题讨论】:
-
在你的现实世界中,'a' 已经被定义,并且在'b' 中被访问时设置了值?
-
如果你在你的节点环境中引入babel,你的代码就可以工作了。对象字面量的动态属性分配是 ES6 规范的一部分,它的支持非常有限,但如果您转译代码就可以正常工作。
标签: javascript node.js