JavaScript objekt

Fysiske objekter, egenskaper og metoder i virkeligheten

I virkeligheten er en bil enObjekt.

Biler har som vekt og farge og lignendeEgenskapog har også som oppstart og stoppMetode:

Objekt Egenskap Metode

car.name = porsche

car.model = 911

car.length = 4499mm

car.color = white

car.start()

car.drive()

car.brake()

car.stop()

Alle biler har sammeEgenskapmen egenskapsverdiene varierer fra bil til bil.

Alle biler har sammeMetodemen metoder vil bli kjørt på forskjellige tidspunkter.

JavaScript objekt

Du har allerede lært at JavaScript-variabler er beholdere for dataverdier.

Denne koden setter enenkel verdi(porsche) tildelt til variabelen carVariabel:

var car = "porsche";

Prøv det selv

Objektet er også en variabel. Men objektet inneholder mange verdier.

Denne koden setterflere verdier(porsche, 911, white) tildelt til variabelen carVariabel:

var car = {type:"porsche", model:"911", color:"white"};

Prøv det selv

Verdiene erNavn:verdiskrevet i form av (navn og verdi adskilt med kolon).

JavaScript-objekter erNavngitt verdien beholder.

Objekt egenskap

Navn:verdi-pair i JavaScript-objekter kallesEgenskap.

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
Egenskap Egenskapsverdi
firstName Bill
lastName Gates
age 62
eyeColor blue

Objektmetode

Objektet kan også haMetode.

Metoden er handling som utføres på objektetHandling.

Metoden erFunktionsdefinitionlagret i egenskapene.

Egenskap Egenskapsverdi
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

Metoden er som en egenskap lagret funksjon.

Eksempel

var person = {
  firstName: "Bill",
  lastName : "Gates",
  id       : 678,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

this-nøgleordet

I funktionsdefinitionenthis der refererer til funktionens "ejer".

I eksemplet ovenforthis betyder "at have" fullName-funktionen. person-objektet.

Kort sagtthis.firstName Betyder this-objektetfirstName-egenskaben.

Ved JS this-nøgleordetDette kapitel lærer mere om this-nøgleordet.

Objektdefinering

Vi har defineret (oprettet) et JavaScript-objekt:

Eksempel

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Prøv det selv

Mellemrum og linjeskift er tilladt. Objektdefineringer kan spænde over flere linjer:

Eksempel

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:50,
    eyeColor:"blue"
};

Prøv det selv

Få adgang til objektets egenskaber

Du kan få adgang til egenskaber på to måder:

objectName.propertyName

eller

objectName["propertyName"]

Eksempel 1

person.lastName;

Prøv det selv

Eksempel 2

person["lastName"];

Prøv det selv

Få adgang til objektmetoder

Du kan få adgang til objektmetoder på følgende måde:

objectName.methodName()

Eksempel

name = person.fullName();

Prøv det selv

Hvis duuden () Hvis du kalder metoden fullName, vil den returnereFunktionsdefinition:

Eksempel

name = person.fullName;

Prøv det selv

Metoder gemmes faktisk som funktionsdefinitioner i form af egenskabsværdier.

Opret ikke strenge, tal og booleans som objekter!

Hvis du deklarerer JavaScript-variabler med nøgleordet "new", vil variablen blive oprettet som et objekt:

var x = new String();        // Opret x som String-objekt
var y = new Number();        // Opret y som Number-objekt
var z = new Boolean();       // Opret z som Boolean-objekt

Undgå at bruge string, numeriske eller logiske objekter. De kan øge kodekompleksiteten og reducere udførelseshastigheden.

Du vil lære mere om objekter i de senere kapitler af denne tutorial.

ekstrabøger

For mere om JavaScript objektFor mere om viden, læs relevante indhold i JavaScript avanceret tutorial:

ECMAScript objektorienteret teknologi
Dette afsnit giver en kort introduktion til terminologien inden for objektorienteret teknologi, kravene til objektorienterede sprog samt sammensætningen af objekter.
ECMAScript objekt anvendelse
Dette afsnit introducerer, hvordan man deklarerer og instantierer objekter, hvordan man refererer til og affabler objekter, samt begrebet binding.
ECMAScript objekt type
Dette afsnit introducerer ECMAScript's tre typer: lokale objekter, indbyggede objekter og værtsobjekter, og giver links til relevante referencehåndbøger.
ECMAScript objekt omfang
Dette afsnit forklarer ECMAScript's omfang samt this-nøglen.
ECMAScript definer klasse eller objekt
Dette afsnit forklarer i detaljer de forskellige måder at oprette ECMAScript objekter eller klasser på.
ECMAScript ændre objekt
Dette afsnit forklarer, hvordan man ændrer objekter ved at oprette nye metoder eller gendefinere eksisterende metoder.