Lao*_*jin 6 javascript ecmascript-6
动态属性:
var obj = {
// Computed (dynamic) property names
[ 'prop_' + (() => 42)() ]: 42
};
Run Code Online (Sandbox Code Playgroud)
这当然非常花哨.但有人可以在哪里使用它而不增加不必要的复杂性
我想要的一个案例是基于Java类在生成的文件中定义了JSON的属性名称.
// Generated
var SomeJsonBodyParams = {NAME: 'name', ID: 'id', ETA, 'estimatedTimeOfArrival'};
// Using it
sendAjax('some/url', {
[SomeJsonBodyParams.NAME] = userData.name,
...
});
Run Code Online (Sandbox Code Playgroud)
我们甚至有一种方法,所以我们可以做到这一点
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,
...
));
Run Code Online (Sandbox Code Playgroud)