Javascript 函数返回值是否可以作为数组键?

Javascript 函数返回值是否可以作为数组键?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我创建了一个惰性实用程序函数,我想将其作为数组键传递,但我遇到了语法错误,是否可以将数组中的函数作为键传递 function encloseAttrSelector(attr, value) { return '[' + attr + '="' + value + '"]'; } 示例(通常不止一对): 对于多对,请执行以下操作: var data = {}; data[encloseAttrSelector('name', 'username')] = row.first()

我创建了一个惰性实用程序函数,我想将其作为数组键传递,但我遇到了语法错误,是否可以将数组中的函数作为键传递

function encloseAttrSelector(attr, value)
{
    return '[' + attr + '="' + value + '"]';
}   

示例(通常不止一对):


对于多对,请执行以下操作:

var data = {};
data[encloseAttrSelector('name', 'username')] = row.first().text();
在ES6 ES2015(该语言的最新官方标准)中,是,但在大多数实际环境中不是。但是,您可以这样做:

var data = {};
data[encloseAttrSelector('name', 'username')] = row.first().text();
新的ES2015语法为:

var data = { [encloseAttrSelector('name', 'username')] : row.first().text() };

也就是说,在对象初始值设定项表达式中,通常只是属性名称的方括号。方括号内可以是任何表达式。

No,必须执行两个步骤,
var data={};数据[encloseAttrSelector('name','username')]=row.first().text()至少在当前不支持最新功能的浏览器中是这样。计算对象属性名在不久的将来将得到大多数浏览器的支持。现在你必须用两行代码来完成,我不清楚你为什么说
return{attr:value}
对一对代码有效。你的第二个可以工作,但是第一个不能(在ES5中)@somethinghere删除了那个位。谢谢
var data = { [encloseAttrSelector('name', 'username')] : row.first().text() };