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

joe*_*joe 3 javascript arrays jquery

我做了一个懒惰的实用程序函数,我想作为我的数组键传递,但我得到语法错误,是否可以传递一个函数在数组内部作为键?

function encloseAttrSelector(attr, value)
{
    return '[' + attr + '="' + value + '"]';
}   
Run Code Online (Sandbox Code Playgroud)

..

示例(通常不止一对):

var data = { encloseAttrSelector('name', 'username'):  row.first().text() };
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 6

ES6 ES2015(该语言的最新官方标准)中是的,但在大多数现实生活中都没有.但是你可以这样做:

var data = {};
data[encloseAttrSelector('name', 'username')] = row.first().text();
Run Code Online (Sandbox Code Playgroud)

新的ES2015语法是:

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

也就是说,方括号围绕通常只是对象初始化表达式中的属性名称.方括号内可以是任何表达式.