Objekt og objektkonstruktører i JavaScript?
I den levende verden af objektorienteret programmering kender vi allerede betydningen af klasser og objekter, men i modsætning til andre programmeringssprog har JavaScript ikke de traditionelle klasser, som man ser i andre sprog. Men JavaScript har objekter og konstruktører, som for det meste fungerer på samme måde til at udføre den samme slags operationer.
- Konstruktører er generelle JavaScript-funktioner, som bruges med nøgleordet “new”. Konstruktører er af to typer i JavaScript, nemlig indbyggede konstruktører (array og objekt) og brugerdefinerede konstruktører (definerer egenskaber og metoder for specifikke objekter).
- Konstruktører kan være nyttige, når vi har brug for en måde at skabe en objekt-“type”, der kan bruges flere gange uden at skulle omdefinere objektet hver gang, og dette kan opnås ved hjælp af objektkonstruktørfunktionen. Det er en konvention at skrive navnet på konstruktører med store bogstaver for at skelne dem fra almindelige funktioner.
Se f.eks. følgende kode:
function Automobile(color) { this.color=color;}var vehicle1 = new Automobile ("red");
Funktionen “Automobile()” er en objektkonstruktør, og dens egenskaber og metoder dvs. “color” er erklæret inde i den ved at sætte nøgleordet “this” foran den. Objekter, der er defineret ved hjælp af en objektkonstruktør, gøres derefter til instanter ved hjælp af nøgleordet “new”.
Når new Automobile() kaldes, gør JavaScript to ting:
- Det opretter et frisk nyt objekt(instance) Automobile() og tildeler det til en variabel.
- Den indstiller objektets konstruktøregenskab, dvs. “color”, til Automobile.
Object.create() Metode
Object.create() methord bruges til at oprette et nyt objekt med det angivne prototypeobjekt og de angivne egenskaber. Object.create()-metoden returnerer et nyt objekt med det angivne prototypeobjekt og egenskaber.
Anvendelser:
- Object.create() bruges til at implementere arv.
Syntaks:
Object.create(prototype)
Anvendte parametre:
- prototype :
Det er prototypeobjektet, hvorfra der skal oprettes et nyt objekt.
- propertiesObject : Det er en valgfri parameter. Den angiver de opregnelige egenskaber, der skal tilføjes til det nyoprettede objekt.
Returneringsværdi:
Object.create() returnerer et nyt objekt med det angivne prototypeobjekt og egenskaber.
Eksempler på ovenstående funktion er angivet nedenfor.
Eksempler:
Forklaring: I dette eksempel er der to funktioner “fruits” og “apple”.Der oprettes en ny instans af apple, der hedder “app”, og den er angivet med prototypen og egenskaben “fruits”, dvs. this.name = ‘fruit 1’.
Forklaring: I dette eksempel er der to funktioner “fruits” og “apple”: I dette eksempel er der to funktioner “fruits” og “apple”.
Der oprettes en ny instans af apple med navnet “app”, og den er angivet med prototypen og egenskaben “fruits”, dvs. this.name = “fruit 1” og this .season = “summer”.
Koderne for ovenstående funktion er angivet nedenfor.
Kode 1:
OUTPUT :
"fruit 1"
Kode 2:
OUTPUT :
"fruit 1""summer"
Exceptions :
- Objekt.create( ) metode kaster en TypeError undtagelse, hvis propertiesObject parameteren ikke er null.
- Object.create( ) metode kaster en TypeError undtagelse, hvis propertiesObject parameteren er et ikke primitivt objekt.