动态属性:
var obj = { // Computed (dynamic) property names [ 'prop_' + (() => 42)() ]: 42 };
这当然非常花哨.但有人可以在哪里使用它而不增加不必要的复杂性
如果您将属性名称作为常量:
var obj = { [SOME_CONSTANT]: 42 };
我想要的一个案例是基于Java类在生成的文件中定义了JSON的属性名称.
// Generated var SomeJsonBodyParams = {NAME: 'name', ID: 'id', ETA, 'estimatedTimeOfArrival'}; // Using it sendAjax('some/url', { [SomeJsonBodyParams.NAME] = userData.name, ... });
我们甚至有一种方法,所以我们可以做到这一点
function makeObj() { var obj = {}; for (var i=0; i < arguments.length; i+=2) { obj[i] = obj[i+i]; } return obj; } sendAjax('some/url', makeObj( SomeJsonBodyParams.NAME, userData.name, ... ));