Buenas tardes. En C#, creo una clase, luego desde esta clase creo una variable de clase (u objeto). Y si trabajo con colecciones, entonces agrego mis nuevas clases a la colección.
class person{ int id; string name; int age; } person myPerson = new person(); List<person> people = new List<person>(); people.add(myPerson);Según tengo entendido, en Javascript sucede de una manera diferente. Aquí no les gusta crear clases primero, sino agregar directamente un objeto con datos directamente a la colección.
Dime cómo se usa Javascript para trabajar con sus propios tipos de datos. ¿Cuál es el enfoque utilizado?
Puede trabajar en JS (desde ES6) exactamente como en C#:
Código C#:
class person{ int id; string name; int age; } person myPerson = new person(); List<person> people = new List<person>(); people.add(myPerson);Código JS:
class Person { constructor(id, name, age) { this.id = id; this.name = name; this.age = age; } } myPerson = new Person("p1", "Tom", 54); people = []; people.push(myPerson);Espero eso ayude ! :)
C# es un lenguaje fuertemente tipado, es decir, puede declarar una variable para que sea una instancia de un objeto (o un tipo primitivo) y luego el lenguaje arrojará un error si viola esto. Entonces, una colección como esta.
List<person> people = new List<person>();tiene sentido en C#. Sin embargo, Javascript es un lenguaje de tipo débil, es decir, puede definir una variable para que sea una instancia de una clase, pero no puede declararla. Entonces, si haces algo como esto:
var myVariable = new MyClass(); entonces ha creado una instancia de MyClass en su definición, pero solo declaró que myVariable es una variable.
En Javascript puedes usar arreglos u objetos como colecciones. Ejemplo usando matriz:
class Rectangle { constructor(height, width) { this.height = height; this.width = width; } } var myCollection = []; //creating the collection myCollection.push(new Rectangle(2, 3)); //adding an element to a collection myCollection.push(new Rectangle(3, 2)); //adding an element to a collection myCollection.push(new Rectangle(4, 4)); //adding an element to a collection myCollection.push(new Rectangle(10, 15)); //adding an element to a collection for (let rectangle of myCollection) { console.log(`${rectangle.width} x ${rectangle.height}`); }Ejemplo usando objeto
let myCollection = { 'first': 'a', 'second': 'b', 'third': 'c' } myCollection.fourth = 'd'; for (let key in myCollection) console.log(`${key} is ${myCollection[key]}`); En Javascript, class es un azúcar sintáctico para funciones. Ejemplo:
function MyClass(foo, bar) { this.myFoo = foo; this.myBar = bar; } let obj = new MyClass('abc', 'def'); console.log(obj);