Webprogramming made easy
www.jojoxx.net

JavaScript

Objekt

Till sin hjälp när man skriver JavaScript har man ett antal färdiga objekt. Vi har redan tittat på ett av dem, nämnligen objektet String. Det är det objekt som används när du skapar variabler. När du skapar en variabel får du egentligen ett object av typen String. Detta objekt har sedan en mängd så kallade metoder, t.ex. toLowerCase() som vi redan har tittat på och använt. Men, som om inte det vore nog kan man även skapa egna objekt i JavaScript med mallobjektet Object. Till detta objekt kan vi sedan knyta de egenskaper vi vill.

<script type="text/javascript">
	myCar=new Object();
	myCar.model="Saab 95";
	myCar.topspeed="95 km/h";
	myCar.view=function(){
		alert("Jag har en "+this.model+" och den har en topphastighet av "+this.topspeed);
	}
	myCar.view();
</script>

I exemplet ovan har vi alltså skapat objektet myCar som vi har tilldelat 2 egenskaper (model och topspeed). Sedan har vi även skapat metoden view (som vi sedan anropar) vilken visar aktuell bilmodell och topphastighet. Här ser vi även hur man använder nyckelordet this som används för att peka på aktuellt objekt.

För att förenkla skapandet av objekt kan vi använda oss av function. Vi kan då genom att skicka med argument till funktionen ge objektet alla dess egenskaper med ett anrop. Vi talar även om att vårat bilobjekt har en default-egenskap vid namn geartype som är "manuell" ifall inget anges vid anropet.

<script type="text/javascript">
	myCar=new makeCar("Saab 95","95 km/h");
	function makeCar(model,topspeed,geartype){
		this.model=model;
		this.topspeed=topspeed;
		this.geartype=(geartype)?geartype:"manuell";
		this.view=function(){
			alert("Jag har en "+this.model+" med "+this.geartype+" växellåda och den har en topphastighet av "+this.topspeed);
		}
	}
	myCar.view();
</script>

Men, varför nöja sig med det. Du har väl fler bilar än så... I nästa exempel skapar vi en array med vårt nya bil-objekt. Lika enkelt och smidigt. Sedan visar vi våra besökare vad vi har för bilar.

<script type="text/javascript">
	myCars=new Array(new makeCar("Saab 95","95 km/h"),new makeCar("Dodge Viper","många km/h"));
	function makeCar(model,topspeed,geartype){
		this.model=model;
		this.topspeed=topspeed;
		this.geartype=(geartype)?geartype:"manuell";
		this.view=function(){
			alert("Jag har en "+this.model+" med "+this.geartype+" växellåda och den har en topphastighet av "+this.topspeed);
		}
	}
	for(var i=0;i<myCars.length;i++){
		myCars[i].view();
	}
</script>
---
© Johan Johansson 1998-2004 Jojoxx.net