最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

动态创建许多类对象

IT培训 admin 3浏览 0评论

动态创建许多类对象

我有这个类对象,我需要为每个存在的用户创建一个新的Person()类对象。说我有用户(user1,user2,user3),我需要创建3个Person()对象。我如何动态地做到这一点?

function Person() {
  this.user = 'user_1';
}
Person.prototype.setName = function(user) {
  this.user = user;
};
Usernames = ["user1", "user2", "user3"]
var Example = new Person();
Example.setName(Username[0]);

var Example2 = new Person();
Example.setName(Username[1]);

var Example3 = new Person();
Example3.setName(Username[2]);
回答如下:

一种更简单的方法来解决Sudhakar RS的问题:

Usernames = ["user1", "user2", "user3"];
let persons = Usernames.map(name => {
    let person = new Person();
    person.setName(name);
    return person;
});

此方法可在保持不变性/稳定性的同时,进一步抽象和提供更多功能的方法。例如:

let Usernames = ["user1", "user2", "user3"];
let persons = Usernames.map(createPersonWithName);

function createPersonWithName(name) {
  let person = new Person();
  person.setName(name)
  return person;
}

无论您是对象数组还是紧密相关的数组,以这种方式隔离事物在其他方面都具有不可思议的价值。老实说,对象数组是最好的,也是最简单的。

Users = [{
  name: 'user1',
  data: 'value1'
}, {
  name: 'user2',
  data: 'value2'
}, {
  name: 'user3',
  data: 'value3'
}];

let persons = Users.map(createPerson);

function createPerson(user) {
  let person = new Person();
  person.setName(user.name);
  person.setData(user.data);
  return person;
}

尽管使用多个数组通常需要超出范围或花哨其他被许多人认为是臭味的技巧。一种简单的方法:

let Usernames = ["user1", "user2", "user3"];
let Userdata = ["value1", "value2", "value3"];
let persons = Usernames.map(createPersonWithName);

function createPersonWithName(name, index) {
  let person = new Person();
  person.setName(name)
  person.setData(Userdata[index]);
  return person;
}

动态创建许多类对象

我有这个类对象,我需要为每个存在的用户创建一个新的Person()类对象。说我有用户(user1,user2,user3),我需要创建3个Person()对象。我如何动态地做到这一点?

function Person() {
  this.user = 'user_1';
}
Person.prototype.setName = function(user) {
  this.user = user;
};
Usernames = ["user1", "user2", "user3"]
var Example = new Person();
Example.setName(Username[0]);

var Example2 = new Person();
Example.setName(Username[1]);

var Example3 = new Person();
Example3.setName(Username[2]);
回答如下:

一种更简单的方法来解决Sudhakar RS的问题:

Usernames = ["user1", "user2", "user3"];
let persons = Usernames.map(name => {
    let person = new Person();
    person.setName(name);
    return person;
});

此方法可在保持不变性/稳定性的同时,进一步抽象和提供更多功能的方法。例如:

let Usernames = ["user1", "user2", "user3"];
let persons = Usernames.map(createPersonWithName);

function createPersonWithName(name) {
  let person = new Person();
  person.setName(name)
  return person;
}

无论您是对象数组还是紧密相关的数组,以这种方式隔离事物在其他方面都具有不可思议的价值。老实说,对象数组是最好的,也是最简单的。

Users = [{
  name: 'user1',
  data: 'value1'
}, {
  name: 'user2',
  data: 'value2'
}, {
  name: 'user3',
  data: 'value3'
}];

let persons = Users.map(createPerson);

function createPerson(user) {
  let person = new Person();
  person.setName(user.name);
  person.setData(user.data);
  return person;
}

尽管使用多个数组通常需要超出范围或花哨其他被许多人认为是臭味的技巧。一种简单的方法:

let Usernames = ["user1", "user2", "user3"];
let Userdata = ["value1", "value2", "value3"];
let persons = Usernames.map(createPersonWithName);

function createPersonWithName(name, index) {
  let person = new Person();
  person.setName(name)
  person.setData(Userdata[index]);
  return person;
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论