Nesne Yönelimli Javascript

Javascriptte, class(sınıf) yoktur. Onun yeri objeler vardır. Bu objeler class olarakta kullanılabilir.

// Örnek sınıflar
 
// Hayvan sınıfı değişkenleri ve constructor
function Hayvan(yaş){
	this.yaş = yaş;
	console.log("Yeni hayvan");
}
 
// Hayvan sınıfı metodları
Hayvan.prototype.büyü = function(){
		this.yaş++;
}
 
// Insan sınıfı değişkenleri ve constructor
function Insan(yaş){
	Hayvan.call(this,yaş); // super classın constructorünü çağır
	console.log("Yeni Insan");
}
 
// Kalıtım - prototipleri birleştir
Insan.prototype = Object.create(Hayvan.prototype);
Insan.prototype.constructor = Insan;
 
// Insanı sınıfının kendine özgü metodları
Insan.prototype.konuş = function(){
	console.log("Ben "+this.yaş+" yaşıdayım");
}
 
// Test
var ahmet = new Insan(16);
ahmet.büyü();
ahmet.konuş();
console.log(ahmet);

Object.create fonksiyonu, bir objeyi kopyalamaz, sadece adresleme yaparak , yeni bir obje oluşturur.(delegasyon) Bunun sayesinde, kalıtım yaparken hafıza kullanımını azaltırız.

this deyimiyle javascriptte, sınıfın kendisi kastedilmez. Bir fonksiyonun hangi obje üzerinde çağrıldığı kastedilir.  obje.fonksiyon(); yani o fonksiyonun içinde this kullanıldıysa, noktanın solundaki ilk ifade olan obje ,this’e karşılık düşer. Buda javascriptin önemli farklarında biridir.

Bir fonksiyondan sonra call kullanılırak, o fonksiyonundaki this ifadesi, istediğimiz obje ile yer değiştirebiliriz.

obje1.fonksiyon(); // burda this=obje1
obje2.fonksiyon.call(obje3); // burda this=obje3

HTML5 Local Storage

Cookieler, max 4KB’tır ve her istekte sunucuya tekrar gönderilir. Eğer kullanıcının browserda bir şey depolamak istersek ve buna sadece javascriptten erişmek istersek Local storage kullanabiliriz.

Veri yazma

localStorage.setItem("key", "value");

Veri okuma

localStorage.getItem("key");

Veri silme

localStorage.removeItem("key");