Javascript “如何在”中写得更少;新";

Javascript “如何在”中写得更少;新";,javascript,Javascript,像“this.uuid=uuid…”这样的结构看起来很难看。我怎样才能写得更好 看来这不是最好的办法 功能帐户({ uuid, 电子邮件, 通过, 设备id, 最大重复次数=10, 最大值=10, 最大通信量=10, 最大值=10 }) { this.uuid=uuid; this.email=电子邮件; this.pass=通过; this.device\u id=设备\u id; this.max\u rep=max\u rep; this.max\u like=max\u like; t

像“this.uuid=uuid…”这样的结构看起来很难看。我怎样才能写得更好

看来这不是最好的办法

功能帐户({
uuid,
电子邮件,
通过,
设备id,
最大重复次数=10,
最大值=10,
最大通信量=10,
最大值=10
}) {
this.uuid=uuid;
this.email=电子邮件;
this.pass=通过;
this.device\u id=设备\u id;
this.max\u rep=max\u rep;
this.max\u like=max\u like;
this.max\u com=max\u comm;
this.max\u sub=max\u sub;
}
a=新账户({
uuid:'12',
电子邮件:“g@mail.ru",
通行证:“123”,
设备id:“444”
})
b=新账户({
uuid:'13',
电子邮件:“ab@mail.ru",
通行证:“456”,
设备id:“777”
})

console.log(a,b)
您可以对道具进行分解,然后从道具生成一个对象,并将其分配给

功能帐户({
uuid,
电子邮件,
通过,
设备id,
最大重复次数=10,
最大值=10,
最大通信量=10,
最大值=10
}) {
对象。分配(此{
uuid,
电子邮件,
通过,
设备id,
代表马克斯,
max_喜欢,
马克斯通信公司,
马克斯苏
});
}
const a=新帐户({
uuid:'12',
电子邮件:“g@mail.ru",
通行证:“123”,
设备id:“444”
})
const b=新帐户({
uuid:'13',
电子邮件:“ab@mail.ru",
通行证:“456”,
设备id:“777”
})
控制台日志(a)

console.log(b)
您可以分解道具,然后从道具生成一个对象,并将其分配给

功能帐户({
uuid,
电子邮件,
通过,
设备id,
最大重复次数=10,
最大值=10,
最大通信量=10,
最大值=10
}) {
对象。分配(此{
uuid,
电子邮件,
通过,
设备id,
代表马克斯,
max_喜欢,
马克斯通信公司,
马克斯苏
});
}
const a=新帐户({
uuid:'12',
电子邮件:“g@mail.ru",
通行证:“123”,
设备id:“444”
})
const b=新帐户({
uuid:'13',
电子邮件:“ab@mail.ru",
通行证:“456”,
设备id:“777”
})
控制台日志(a)

console.log(b)
在函数中创建一个新对象,然后分配其属性并返回:

功能账户(obj){
const act={};
for(让Object.entries(obj))的[key,value]{
行动[关键]=价值;
}
[“max_rep”、“max_like”、“max_comm”、“max_sub”]。forEach((道具)=>{
法案[提案]=目标[提案]?目标[提案]:10;
})
回归法;
}
常数a=帐户({
uuid:'12',
电子邮件:“g@mail.ru",
通行证:“123”,
设备id:“444”,
max_代表:“123”
})
常数b=帐户({
uuid:'13',
电子邮件:“ab@mail.ru",
通行证:“456”,
设备id:“777”
})

console.log(a,b)
在函数中创建一个新对象,然后分配其属性并返回:

功能账户(obj){
const act={};
for(让Object.entries(obj))的[key,value]{
行动[关键]=价值;
}
[“max_rep”、“max_like”、“max_comm”、“max_sub”]。forEach((道具)=>{
法案[提案]=目标[提案]?目标[提案]:10;
})
回归法;
}
常数a=帐户({
uuid:'12',
电子邮件:“g@mail.ru",
通行证:“123”,
设备id:“444”,
max_代表:“123”
})
常数b=帐户({
uuid:'13',
电子邮件:“ab@mail.ru",
通行证:“456”,
设备id:“777”
})

console.log(a,b)
注意这一点:例如,如果obj来自api响应,obj可能包含属性hasOwnProperty(假设值是字符串),并且在实例化时会失败(因为您想到调用该方法,但实际上得到了恶意设置的值…),我想您(作为我)也误读了标题。op不想在构造函数中写更少的新的但更少的赋值(他可能忘了写Account而不是Account)@grodzi将他的问题解释为想要一个DRYer函数,我认为我的答案提供了这一点,特别是通过绕过作为参数传入的对象文字。我同意你的看法。我只是强调绕过“this”和实例化可能不是op asksk所要注意的:例如,如果obj来自一个api响应,obj可以包含属性hasOwnProperty(假设值是一个字符串),并且在实例化时会失败(因为您想到调用该方法,但实际上得到了恶意设置的值..)我想你(和我一样)也误读了这个标题。op不想在构造函数中写更少的新的但更少的赋值(他可能忘了写Account而不是Account)@grodzi将他的问题解释为想要一个DRYer函数,我认为我的答案提供了这一点,特别是通过绕过作为参数传入的对象文字。我同意你的看法。我只是强调,绕过“this”和实例化可能不是op所要求的