javascript - 在事件触发器上借助函数(动态)创建对象的实例

标签 javascript function class object instanceof

我想创建一个包含姓名、年龄等的用户对象实例。我刚刚给出了一个由用户填写的表单,并且根据该详细信息,我想动态创建他的对象实例(使用该人自己的名字,即用户)。为此,我使用了如下所示的函数,但我遇到了这个错误。感谢您提前的帮助

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

我收到此错误 未捕获的语法错误:标识符“用户”已被声明

最佳答案

您将变量 user 作为 createUser 函数定义中的参数,并且使用 let user 您试图重新 -声明该参数/变量。根据您想要实现的目标,您有三个选择。

  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);

关于javascript - 在事件触发器上借助函数(动态)创建对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56392999/

相关文章:

事件触发的 JavaScript Jquery 函数一次性执行,而不是在正确的时间执行

函数内的javascript函数不返回数据

ruby - 如何在 Ruby 模块上调用 #new 来实例化其类之一?

javascript - 在类中声明对象类型

javascript - switch 中的函数声明 - 为什么只保留最后一个定义?

c++ - 如何将我的类模板传递给函数? (C++)

php - 在 Flot 图表上显示数据库中的值(使用 mySQL)

javascript - OpenTok Api 广播视频在网页中的位置

javascript - 行列式函数中的 NaN?

javascript - 以字符串形式执行函数