bju*_*bes 3 javascript ecmascript-6
我有一个类,它的构造函数需要三个参数。我的代码中的函数有一个字典,其中键是参数的确切名称,值是它们的值。有没有办法使用这个字典调用构造函数以便键自动匹配?或者是手动将每个值放入构造函数参数的唯一解决方案?
class ItemDrop {
constructor(id,x,y){
this.id = id;
this.x = x;
this.y = y;
}
}
Run Code Online (Sandbox Code Playgroud)
并在另一个文件中
var params = {
"id" : "2837",
"x" : 50,
"y" : 100
}
var itemdrop = new ItemDrop(params) // how would i do this?
Run Code Online (Sandbox Code Playgroud)
澄清一下,我不想跑步
var itemdrop = new ItemDrop(params['id'],params['x'],params['y'])
Run Code Online (Sandbox Code Playgroud)
除非没有更干净的选项,因为我将对许多不同的类多次执行类似的操作。
如果保证仅使用所需的属性调用构造函数,则可以使用将Object.assign参数中的所有属性分配给实例 ( this):
class ItemDrop {
constructor(params) {
Object.assign(this, params);
}
}
const params = {
"id": "2837",
"x": 50,
"y": 100
}
const instance = new ItemDrop(params);
console.log(instance);Run Code Online (Sandbox Code Playgroud)
为了将三个参数保留给构造函数,无法将每个属性名称重复两次,并且必须对属性进行params排序才能将它们正确地传播到构造函数中:
class ItemDrop {
constructor(id, x, y) {
Object.assign(this, { id, x, y });
}
}
const params = {
"id": "2837",
"x": 50,
"y": 100
}
const instance = new ItemDrop(...Object.values(params));
console.log(instance);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |