有没有一种方法可以使此过程在对象初始化期间发生?
//uuid() returns a new uuid
let Obj = {
[uuid()]:{
id: (get the ID that was just created)
}
}
所以输出应该类似于
Obj {
5cb93583: {
id: 5cb93583
}
}
答案 0 :(得分:4)
您可以使用立即调用的(箭头)函数以及其他一些ES6语法:
let obj = (id => ({ [id]: {id} }))(uuid());
作为旁注:最好将camelCase用作变量名,并只为构造函数/类保留首字母大写表示法。
答案 1 :(得分:1)
是的,您可以简单地使用一个变量来存储uuid(),然后
let key = uuid();
let obj = {
[key]:{
id: key
}
确保您key
是string
答案 2 :(得分:0)
在给定的IIFE之外,您可以为其使用显式函数,因为这种方法是可重用的。
const
getUUID = _ => Math.floor(Math.random() * (1 << 16)).toString(16),
getObject = id => ({ [id]: { id } });
let object1 = getObject(getUUID()),
object2 = getObject(getUUID());
console.log(object1);
console.log(object2);