In het echte leven is een auto een object. Een auto heeft eigenschappen zoals gewicht en kleur, en methoden zoals starten en stoppen:
Voorwerp | Eigenschappen | Methoden |
|
car.name = Fiat auto.model = 500 auto.gewicht = 850kg auto.kleur = wit |
car.start () car.drive () car.brake () car.stop () |
Alle auto's hebben dezelfde eigenschappen, maar de inhoud van die eigenschappen kan afwijken tussen auto's. Ze hebben allemaal de eigenschap kleur maar welke kleur verschilt per auto. Alle auto's hebben dezelfde methoden, maar de methoden worden op verschillende momenten uitgevoerd.
Je hebt al geleerd dat JavaScript-variabelen containers zijn voor waarden.
Deze code kent een eenvoudige waarde (Fiat) toe aan een variabele met de naam auto:
var car = "Fiat";
Objecten zijn ook variabelen. Maar objecten kunnen veel waarden bevatten.
Deze code kent veel waarden (Fiat, 500, wit) toe aan een variabele met de naam auto:
var car = {type:"Fiat", model:"500", color:"white"};
De waarden worden geschreven als naam:waarde paren (naam en waarde worden van elkaar gescheiden door een dubbele punt).
JavaScript-objecten zijn containers voor waarden met een naam. Deze worden eigenschappen of methoden genoemd.
U definieert (en maakt) een JavaScript-object met {}
:
Voorbeeld
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Spaties en regeleinden zijn niet belangrijk. Een objectdefinitie kan meerdere regels omvatten:
Voorbeeld:
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
De naam:waarde- paren in JavaScript-objecten worden eigenschappen genoemd :
Eigenschap | Waarde |
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
U kunt objecteigenschappen op twee manieren openen:
objectName.propertyName
of
objectName["propertyName"]
Voorbeeld 1
person.lastName;
Voorbeeld 2
person["lastName"];
Objecten kunnen ook methoden hebben. Methoden zijn acties die op objecten kunnen worden uitgevoerd. Methoden worden in eigenschappen opgeslagen als functiedefinities.
Eigenschap | Waarde |
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function () {return this.firstName + " " + this.lastName;} |
Een methode is een functie die is opgeslagen als een eigenschap.
Voorbeeld
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
this
verwijst in een functiedefinitie naar de "eigenaar" van de functie. In het bovenstaande voorbeeld this
is het persoonsobject "eigenaar" van de fullName
functie. Met andere woorden this.firstName
is de eigenschap firstName
van dit object .
U opent een objectmethode met de volgende syntaxis: objectName.methodName()
Voorbeeld
name = person.fullName();
Als u een methode opent zonder de () haakjes, retourneert deze de functiedefinitie:
Voorbeeld
name = person.fullName;
Wanneer een JavaScript-variabele wordt gedeclareerd met het trefwoord "new", wordt de variabele gemaakt als een object:
var x = new String(); // Declares x as a String object
var y = new Number(); // Declares y as a Number object
var z = new Boolean(); // Declares z as a Boolean object
Vermijd Strings, Numbers en Booleans als objecten. Ze compliceren uw code en vertragen de uitvoeringssnelheid.