Funcția constructor JavaScript (cu exemple)

În acest tutorial, veți afla despre funcția de constructor JavaScript cu ajutorul exemplelor.

În JavaScript, o funcție constructor este utilizată pentru a crea obiecte. De exemplu,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person = new Person();

În exemplul de mai sus, function Person()este o funcție constructor de obiecte.

Pentru a crea un obiect dintr-o funcție constructor, folosim newcuvântul cheie.

Notă : Se consideră o bună practică să scrii cu majusculă prima literă a funcției de constructor.

Creați mai multe obiecte cu funcția Constructor

În JavaScript, puteți crea mai multe obiecte dintr-o funcție de constructor. De exemplu,

 // constructor function function Person () ( this.name = 'John', this.age = 23, this.greet = function () ( console.log('hello'); ) ) // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John

În programul de mai sus, două obiecte sunt create folosind aceeași funcție de constructor.

JavaScript acest cuvânt cheie

În JavaScript, când thiscuvântul cheie este utilizat într-o funcție de constructor, thisse referă la obiect atunci când obiectul este creat. De exemplu,

 // constructor function function Person () ( this.name = 'John', ) // create object const person1 = new Person(); // access properties console.log(person1.name); // John

Prin urmare, atunci când un obiect accesează proprietățile, se poate accesa direct proprietatea ca person1.name.

Parametrii funcției constructorului JavaScript

De asemenea, puteți crea o funcție constructor cu parametri. De exemplu,

 // constructor function function Person (person_name, person_age, person_gender) ( // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () ( return ('Hi' + ' ' + this.name); ) ) // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 

În exemplul de mai sus, am transmis argumente funcției constructor în timpul creării obiectului.

 const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'male');

Aceasta permite fiecărui obiect să aibă proprietăți diferite. După cum se arată mai sus,

console.log(person1.name); dă John

console.log(person2.name); dă Sam

Creați obiecte: Funcția constructor împotriva obiectului Literal

  • Obiectul Literal este utilizat în general pentru a crea un singur obiect. Funcția constructor este utilă dacă doriți să creați mai multe obiecte. De exemplu,
 // using object literal let person = ( name: 'Sam' )
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person();
  • Fiecare obiect creat din funcția constructor este unic. Puteți avea aceleași proprietăți ca funcția constructor sau puteți adăuga o proprietate nouă unui anumit obiect. De exemplu,
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person(); // adding new property to person1 person1.age = 20;

Acum această ageproprietate este unică person1obiectului și nu este disponibilă person2obiectului.

Cu toate acestea, dacă un obiect este creat cu un obiect literal și dacă o variabilă este definită cu valoarea obiectului respectiv, orice modificare a valorii variabilei va schimba obiectul original. De exemplu,

 // using object lateral let person = ( name: 'Sam' ) console.log(person.name); // Sam let student = person; // changes the property of an object student.name = 'John'; // changes the origins object property console.log(person.name); // John

Când un obiect este creat cu un obiect literal, orice variabilă de obiect derivată din acel obiect va acționa ca o clonă a obiectului original. Prin urmare, orice modificare pe care o faceți într-un obiect se va reflecta și în celălalt obiect.

Adăugarea de proprietăți și metode într-un obiect

Puteți adăuga proprietăți sau metode într-un obiect ca acesta:

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding property to person1 object person1.gender = 'male'; // adding method to person1 object person1.greet = function () ( console.log('hello'); ) person1.greet(); // hello // Error code // person2 doesn't have greet() method person2.greet();

Ieșire

 salut Uncaught TypeError: person2.greet nu este o funcție

În exemplul de mai sus, o nouă proprietate genderși o nouă metodă greet()sunt adăugate person1obiectului.

Cu toate acestea, această nouă proprietate și metodă este adăugată numai la person1. Nu puteți accesa gendersau de greet()la person2. Prin urmare, programul dă erori atunci când încercăm să accesămperson2.greet();

Prototipul obiectului JavaScript

De asemenea, puteți adăuga proprietăți și metode unei funcții de constructor folosind un prototip . De exemplu,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding new property to constructor function Person.prototype.gender = 'Male'; console.log(person1.gender); // Male console.log(person2.gender); // Male

Pentru a afla mai multe despre prototipuri, accesați JavaScript Prototype.

Constructori încorporați JavaScript

JavaScript are, de asemenea, constructori încorporați. Unii dintre ei sunt:

 let a = new Object(); // A new Object object let b = new String(); // A new String object let c = new Number(); // A new Number object let d = new Boolean(); // A new Boolean object

În JavaScript, șirurile pot fi create ca obiecte prin:

 const name = new String ('John'); console.log(name); // "John"

În JavaScript, numerele pot fi create ca obiecte prin:

 const number = new Number (57); console.log(number); // 57

În JavaScript, booleenii pot fi creați ca obiecte prin:

 const count = new Boolean(true); console.log(count); // true

Notă : Se recomandă utilizarea tipurilor de date primitive și crearea lor într-un mod normal, cum ar fi const name = 'John';, const number = 57;șiconst count = true;

Nu trebuie să declarați șiruri, numere și valori booleene ca obiecte, deoarece acestea încetinesc programul.

Notă : În JavaScript, cuvântul cheie a classfost introdus în ES6 (ES2015), care ne permite, de asemenea, să creăm obiecte. Clasele sunt similare cu funcțiile constructor din JavaScript. Pentru a afla mai multe, vizitați cursurile JavaScript.

Articole interesante...