de Kaashan Hussain

Cu toții ne ocupăm de obiecte într-un fel sau altul în timp ce scriem cod într-un limbaj de programare. În JavaScript, obiectele ne oferă o modalitate de a stoca, manipula și trimite date prin rețea.

Există multe moduri în care obiectele din JavaScript diferă de obiectele din alte limbaje de programare obișnuite, cum ar fi Java. Voi încerca să abordez asta într-un alt subiect. Aici, să ne concentrăm doar asupra diferitelor moduri în care JavaScript ne permite să creăm obiecte.

În JavaScript, gândiți-vă la obiecte ca la o colecție de perechi „cheie: valoare”. Aceasta ne aduce primul și cel mai popular mod în care creăm obiecte în JavaScript.

Să începem asta.

1. Crearea obiectelor utilizând sintaxa literală a obiectelor

Acest lucru este foarte simplu. Tot ce trebuie să faceți este să aruncați perechile de valori cheie separate prin „:” într-un set de paranteze ({}), iar obiectul dvs. este gata să fie servit (sau consumat), ca mai jos:

const person = {
  firstName: 'testFirstName',
  lastName: 'testLastName'
};

Acesta este cel mai simplu și mai popular mod de a crea obiecte în JavaScript.

2. Crearea obiectelor folosind cuvântul cheie „nou”

Această metodă de creare a obiectelor seamănă cu modul în care obiectele sunt create în limbaje bazate pe clase, cum ar fi Java. Apropo, începând cu ES6, clasele sunt native și pentru JavaScript și ne vom uita la crearea de obiecte definind clase spre sfârșitul acestui articol. Deci, pentru a crea un obiect folosind cuvântul cheie „nou”, trebuie să aveți o funcție constructor.

Iată 2 moduri în care puteți utiliza „noul” model de cuvinte cheie –

a) Folosirea cuvântului cheie „nou” cu funcția de constructor de obiecte încorporată

Pentru a crea un obiect, utilizați noul cuvânt cheie cu Object() constructor, așa:

const person = new Object();

Acum, pentru a adăuga proprietăți acestui obiect, trebuie să facem așa ceva:

person.firstName="testFirstName";
person.lastName="testLastName";

S-ar putea să vă fi dat seama că această metodă este puțin mai lungă pentru a tasta. De asemenea, această practică nu este recomandată, deoarece există o rezoluție de scop care se întâmplă în culise pentru a afla dacă funcția constructor este încorporată sau definită de utilizator.

b) Utilizarea „nou” cu funcția de constructor definită de utilizator

Cealaltă problemă cu abordarea utilizării funcției de constructor „Obiect” rezultă din faptul că de fiecare dată când creăm un obiect, trebuie să adăugăm manual proprietățile obiectului creat.

Ce se întâmplă dacă ar trebui să creăm sute de obiecte personale? Vă puteți imagina durerea acum. Deci, pentru a scăpa de adăugarea manuală a proprietăților obiectelor, creăm funcții personalizate (sau definite de utilizator). Mai întâi creăm o funcție constructor și apoi folosim cuvântul cheie „nou” pentru a obține obiecte:

function Person(fname, lname) {
  this.firstName = fname;
  this.lastName = lname;
}

Acum, oricând doriți un obiect „Persoană”, faceți acest lucru:

const personOne = new Person('testFirstNameOne', 'testLastNameOne');
const personTwo = new Person('testFirstNameTwo', 'testLastNameTwo');

3. Utilizarea Object.create () pentru a crea obiecte noi

Acest model este foarte util atunci când ni se cere să creăm obiecte din alte obiecte existente și nu folosim direct sintaxa „nouă” a cuvintelor cheie. Să vedem cum să folosim acest model. După cum sa menționat la MDN:

Object.create() metoda creează un obiect nou, folosind un obiect existent ca prototip al obiectului nou creat.

Pentru a înțelege Object.create rețineți că este nevoie de doi parametri. Primul parametru este un obiect obligatoriu care servește drept prototip al noului obiect care urmează să fie creat. Al doilea parametru este un obiect opțional care conține proprietățile care trebuie adăugate noului obiect.

Nu ne vom scufunda profund în prototipuri și lanțuri de moștenire acum pentru a ne concentra atenția asupra subiectului. Dar, ca punct rapid, vă puteți gândi la prototipuri ca la obiecte de la care alte obiecte pot împrumuta proprietăți / metode de care au nevoie.

Imaginați-vă că aveți o organizație reprezentată de orgObject

const orgObject = { company: 'ABC Corp' };

Și doriți să creați angajați pentru această organizație. În mod clar, doriți toate obiectele angajaților.

const employee = Object.create(orgObject, { name: { value: 'EmployeeOne' } });

console.log(employee); // { company: "ABC Corp" }
console.log(employee.name); // "EmployeeOne"

4. Utilizarea Object.assign () pentru a crea obiecte noi

Ce se întâmplă dacă vrem să creăm un obiect care trebuie să aibă proprietăți de la mai multe obiecte? Object.assign() vine în ajutorul nostru.

După cum sa menționat la MDN:

Object.assign() metoda este utilizată pentru a copia valorile tuturor proprietăților proprii enumerabile de la unul sau mai multe obiecte sursă la un obiect țintă. Acesta va returna obiectul țintă.

Object.assign metoda poate lua ca parametri orice număr de obiecte. Primul parametru este obiectul pe care îl va crea și returna. Restul obiectelor transmise acestuia vor fi folosite pentru a copia proprietățile în noul obiect. Să o înțelegem prin extinderea exemplului anterior pe care l-am văzut.

Să presupunem că aveți două obiecte după cum urmează:

const orgObject = { company: 'ABC Corp' }
const carObject = { carName: 'Ford' }

Acum, doriți un angajat obiect al „ABC Corp” care conduce o mașină „Ford”. Puteți face asta cu ajutorul Object.assign ca mai jos:

const employee = Object.assign({}, orgObject, carObject);

Acum, primești un employee obiect care are company și carName ca proprietate a acestuia.

console.log(employee); // { carName: "Ford", company: "ABC Corp" }

5. Utilizarea claselor ES6 pentru a crea obiecte

Veți observa că această metodă este similară cu utilizarea „nou” cu funcția de constructor definită de utilizator. Funcțiile constructorului sunt acum înlocuite de clase, deoarece sunt acceptate prin specificațiile ES6. Să vedem codul acum.

class Person {
  constructor(fname, lname) {
    this.firstName = fname;
    this.lastName = lname;
  }
}

const person = new Person('testFirstName', 'testLastName');

console.log(person.firstName); // testFirstName
console.log(person.lastName); // testLastName

Acestea sunt toate modalitățile pe care le cunosc pentru a crea obiecte în JavaScript. Sper că ți-a plăcut această postare și acum înțelegi cum să creezi obiecte.

Vă mulțumim pentru timpul acordat pentru citirea acestui articol. Dacă ți-a plăcut această postare și ți-a fost de ajutor, te rog să dai clic pe clap? pentru a vă arăta sprijinul. Continuă să înveți mai multe!