我想创建一个包含姓名、年龄等的用户对象实例。我刚刚给出了一个由用户填写的表单,并且根据该详细信息,我想动态创建他的对象实例(使用该人自己的名字,即用户)。为此,我使用了如下所示的函数,但我遇到了这个错误。感谢您提前的帮助
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
您试图重新 -声明该参数/变量。根据您想要实现的目标,您有三个选择。
- 重命名函数的
user
参数 - 重命名函数内对象的
user
变量 - 删除
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/