JavaScript-konstruktorfunksjon (med eksempler)

I denne veiledningen vil du lære om JavaScript-konstruktorfunksjon ved hjelp av eksempler.

I JavaScript brukes en konstruktorfunksjon til å lage objekter. For eksempel,

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

I eksemplet ovenfor function Person()er en objektkonstruktørfunksjon.

For å lage et objekt fra en konstruktorfunksjon, bruker vi newnøkkelordet.

Merk : Det regnes som en god praksis å bruke store bokstaver i konstruktørfunksjonen.

Lag flere objekter med konstruktorfunksjon

I JavaScript kan du opprette flere objekter fra en konstruktorfunksjon. For eksempel,

 // 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

I det ovennevnte programmet blir to objekter opprettet ved hjelp av samme konstruktorfunksjon.

JavaScript dette nøkkelordet

I JavaScript, når thisnøkkelord brukes i en konstruktorfunksjon, thisrefererer det til objektet når objektet blir opprettet. For eksempel,

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

Derfor, når et objekt får tilgang til egenskapene, kan det få direkte tilgang til eiendommen som person1.name.

JavaScript Constructor Funksjon Parametere

Du kan også opprette en konstruktorfunksjon med parametere. For eksempel,

 // 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" 

I eksemplet ovenfor har vi sendt argumenter til konstruktorfunksjonen under opprettelsen av objektet.

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

Dette gjør at hvert objekt kan ha forskjellige egenskaper. Som vist ovenfor,

console.log(person1.name); gir John

console.log(person2.name); gir Sam

Lag objekter: Konstruktorfunksjon Vs Objekt bokstavelig

  • Object Literal brukes vanligvis til å lage et enkelt objekt. Konstruktorfunksjonen er nyttig hvis du vil opprette flere objekter. For eksempel,
 // using object literal let person = ( name: 'Sam' )
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person();
  • Hvert objekt opprettet fra konstruktorfunksjonen er unikt. Du kan ha de samme egenskapene som konstruktorfunksjonen eller legge til en ny egenskap til et bestemt objekt. For eksempel,
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person(); // adding new property to person1 person1.age = 20;

Nå er denne ageegenskapen unik for person1objekt og er ikke tilgjengelig for person2objekt.

Imidlertid, hvis et objekt er opprettet med et objekt bokstavelig, og hvis en variabel er definert med den objektverdien, vil endringer i variabelverdien endre det opprinnelige objektet. For eksempel,

 // 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

Når et objekt blir opprettet med et objekt bokstavelig, vil en hvilken som helst objektvariabel avledet fra det objektet fungere som en klon av det opprinnelige objektet. Derfor vil enhver endring du gjør i ett objekt også gjenspeile i det andre objektet.

Legge til egenskaper og metoder i et objekt

Du kan legge til egenskaper eller metoder i et objekt som dette:

 // 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();

Produksjon

 hei Ikke fanget TypeError: person2.greet er ikke en funksjon

I eksemplet ovenfor legges en ny egenskap genderog en ny metode greet()til person1objektet.

Imidlertid er denne nye egenskapen og metoden bare lagt til person1. Du får ikke tilgang til gendereller greet()fra person2. Derfor gir programmet feil når vi prøver å få tilgangperson2.greet();

JavaScript-objektprototype

Du kan også legge til egenskaper og metoder til en konstruktorfunksjon ved hjelp av en prototype . For eksempel,

 // 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

For å lære mer om prototyper, besøk JavaScript Prototype.

JavaScript innebygde konstruktører

JavaScript har også innebygde konstruktører. Noen av dem er:

 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

I JavaScript kan strenger opprettes som objekter av:

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

I JavaScript kan tall opprettes som objekter av:

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

I JavaScript kan booleanere opprettes som objekter av:

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

Merk : Det anbefales å bruke primitive datatyper og lage dem på en normal måte, for eksempel const name = 'John';, const number = 57;ogconst count = true;

Du bør ikke erklære strenger, tall og boolske verdier som objekter fordi de bremser programmet.

Merk : I JavaScript ble nøkkelordet classintrodusert i ES6 (ES2015) som også lar oss lage objekter. Klasser ligner på konstruktorfunksjoner i JavaScript. For å lære mer, besøk JavaScript-klasser.

Interessante artikler...