在函数的帮助下(动态地)在事件触发器上创建对象的实例

Create an instance of an object with the help of function (dynamically), on event triggers

我想创建一个包含姓名、年龄等的用户对象实例。道具。我只是给了一个由用户填写的表格,并且我想动态创建他的对象实例(使用那个人自己的名字,即用户)。为此,我使用了如下所示的功能,但我遇到了这个错误。预先感谢您的帮助

class MainUser{
  constructor(name,age){
    this.name=name;
    this.age=age;
  }
}
function createUser(user, name, age){
  let user = new MainUser(name, age);
}

我遇到了这个错误 未捕获的语法错误:标识符 'user' 已被声明

您将变量 user 作为 createUser 的 function-definition 中的参数,而对于 let user 您正试图 re-declare parameter/variable。根据您要实现的目标,您有三种选择。

  1. 重命名函数的 user-参数
  2. 在函数内为您的对象重命名 user 变量
  3. 删除let以使用函数的参数

class User {
  constructor(name, age){
    this.name=name;
    this.age=age;
  }
}

let user = null;
function createUser(name, age){
  user = new User(name, age);
}
createUser('Alice', 32);

console.log(user);

您可以使用的另一种方法:

class User {
  constructor(name, age){
    this.name=name;
    this.age=age;
  }
}

function createUser(name, age){
  let userObject = new User(name, age); 
  return userObject;
}
let user = createUser('Bob', 31);

console.log(user);

要在当前范围内创建具有动态名称的变量,您可以使用以下方法:

class User {
  constructor(name, age){
    this.name=name;
    this.age=age;
  }
}

function createUser(user, name, age){
  this[user] = new User(name, age);
  console.log(this[user]);
  console.log(test_user);
}
createUser('test_user', 'Charly', 42);