Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

205
Visualizações
Cómo definir una clase y usar datos del exterior

yo tengo una clase asi

 class classname { getuser(){} deleteuser(){} }

hay una lista de usuarios, definidos fuera de la clase como este

 let user =[ {id:1,name:"username}, {id:2,name:"username}, ]

Ya tengo un código con funciones que funcionan muy bien. Pero tengo un problema para acceder a la lista de usuarios dentro de la clase. ¿Necesito crear un contratista?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Necesito crear un contratista?

Sí, por supuesto que debe hacerlo. Cuando se trata de OOP , cada class tiene un constructor , incluso si no lo crea, ¡lo tiene por defecto!

Tengo un problema para acceder a la lista de usuarios dentro de la clase.

Intente declararlo antes y cree sus User objects , luego agréguelos a la lista de users , juegue con ellos obteniendo y eliminando .

 class User { constructor(id, name, isVerified) { this.id = id; this.name = name; this.isVerified = isVerified; } static getUser(id) { return new Promise((resolve, reject) => { setTimeout(() => { let user = users.find((user) => { return user.id == id; }); if (user) resolve(user); else reject("User not found!"); }, 2000); }); } static deleteUser(id) { return new Promise((resolve, reject) => { setTimeout(() => { let user = users.find((user) => { return user.id == id; }); if (user) { users = users.filter((user) => user.id !== id); resolve("User deleted successfully!"); } else reject("user not found"); }, 2000); }); } } let users = []; const u1 = new User(1, "Armin", true); const u2 = new User(2, "Vahid", true); const u3 = new User(3, "Steve", false); users.push(u1, u2, u3); console.log(await User.getUser(1)); //{ id: 1, name: "Armin", isVerified: true } console.log(await User.deleteUser(3)); //User deleted successfully! console.log(users); //[{id: 1, name: 'Armin', isVerified: true}, {id: 2, name: 'Vahid', isVerified: true}] console.log(await User.getUser(3)); //User not found!
about 4 years ago · Juan Pablo Isaza Relatório

0

No recomiendo usar valores fuera de la clase a. La razón de esto es que la clase no tiene forma de saber si se modifican o manipulan valores fuera de la instancia. Mantener los valores como parte de la clase permitirá que cada instancia posea su propio conjunto de datos. Por ejemplo, puede ayudar a varios conjuntos de usuarios que no están relacionados de ninguna manera, pero que aún deben manipularse con los mismos métodos.

Si necesita que la clase maneje a los usuarios, puede pasar los usuarios a la clase con un constructor o mediante sus propios métodos. Por ejemplo: addUser(id, name) {}

En el siguiente ejemplo, he elegido este último.

No necesitas un constructor . Solo si tiene una lógica que debe llamarse cada vez que crea una nueva instancia de la clase, como configurar valores y propiedades.

 class Users { list = []; add(id, name) { this.list.push({ id, name }); } get(id) { return this.list.find(user => user.id === id); } delete(id) { this.list = this.list.filter(user => user.id !== id); } } // Create users instance. const users = new Users(); // Add two users. users.add(0, 'Foo'); users.add(1, 'Bar'); console.log('All users', users.list); // Get a single user const userBar = users.get(1); console.log('User Bar', userBar); // Delete a single user. users.delete(0); console.log('All users after deletion', users.list);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda