JavaScript, basit bir nesne tabanlı paradigma üzerinde tasarlanmıştır. Bir nesne, bir özellik, bir ad (veya anahtar) ve bir değer’den meydana gelir. Bir özelliğin değeri bir işlev olabilir, bu durumda özellik bir yöntem olarak bilinir. Tarayıcıda önceden tanımlanmış nesnelere ek olarak, kendi nesnelerini tanımlayabilirsiniz.

Nesneye Genel Bakış

JavaScript’teki nesneler, tıpkı diğer bir çok programlama dilinde olduğu gibi, gerçek yaşamdaki nesnelerle karşılaştırılabilir. JavaScript’teki nesneler kavramı gerçek hayattaki somut nesnelerle anlaşılabilir.

JavaScript’te, bir nesne, özellikleri ve türü olan tek başına bir varlıktır. Örneğin bir bardakla karşılaştırın. Bir fincan özellikleri olan bir nesnedir. Bir bardağın rengi, tasarımı, ağırlığı, yapıldığı bir malzeme vb.. vardır. Aynı şekilde JavaScript nesneleri, özelliklerini tanımlayan özelliklere sahip olabilir. Bir nesnenin özelliklerine nesnenin adının sonunda nokta işareti koyarak erişebiliriz.

objectName.propertyName

Nesneler ve Özellikleri

Bir JavaScript nesnesi, onunla ilişkili özelliklere sahiptir. Bir nesnenin bir özelliği, nesneye bağlı bir değişken olarak açıklanabilir. Nesne özellikleri, temel olarak nesnelerin eklenmesi dışında sıradan JavaScript değişkenleriyle aynıdır. Bir nesnenin özellikleri, nesnenin özelliklerini tanımlanır. Bir nesnenin özelliklerine basit bir nokta gösterimi ile erişirsiniz. Örneğin, myCar adlı bir nesne oluşturarak make, model ve year anahtarlı nesnenin özellikleri de yazalım.

var myCar = new Object();
myCar.make = 'Ford';
myCar.model = 'Mustang';
myCar.year = 1969;

Bir nesnenin atanmamış özellikleri undefined değeri alır (null olmaz).

myCar.color;
// myCar nesnesinin color anahtarlı özelliği olmadığı için 
// bu değer undefined olarak döner.

JavaScript nesnelerine ait özelliklere köşeli parantez notasyonu kullanılarak da erişilebilir veya ayarlanabilir. Nesneler bazen ilişkisel diziler olarak adlandırılır, çünkü her özellik ona erişmek için kullanılabilecek bir dize değeri ile ilişkilendirilir. Yani örneğin, myCar nesnesinin özelliklerini aşağıda belirtildiği şekilde de oluşturabilirsiniz.

myCar['make'] = 'Ford';
myCar['model'] = 'Mustang';
myCar['year'] = 1969;

Bir nesnenin özellik (anahtar) adı, herhangi bir geçerli JavaScript değişkeni veya boş değer olmak üzere herhangi bir şey olabilir. Ancak, geçerli bir JavaScript tanımlayıcısı olmayan (örneğin, boşluk veya tire olan veya bir sayıyla başlayan bir özellik adı) özellik adlarına yalnızca köşeli parantez ile erişilebilir veya oluşturulabilir. Bu özellikler isimleri dinamik olarak bir değişken belirlendiğinde de aynıdır. Değişken olarak belirlendiğinde değişkenin değerini alırlar. Örnekler:

var myObj = new Object(),
    str = 'myString',
    rand = Math.random(),
    obj = new Object();

myObj.type                  // 'Dot syntax';
myObj['date created']  // 'String with space';
myObj[str]                   // 'String value';
myObj[rand]                // 'Random Number';
myObj[obj]                  // 'Object';
myObj['']                     // 'Even an empty string';

JavaScript’teki nesnelerin yalnızca anahtar türü olarak Dize türüne sahip olabileceğinden, köşeli parantez ayracı içindeki tanım Dize türüne dönüştürüldüğünü unutmayın. Yukarıdaki örnekte anahtar obj eklendiğinde myObj, JavaScript obj.toString() yöntemini çağırır ve bu sonuç anahtar olarak kullanılır.

var propertyName = 'make';
myCar[propertyName] = 'Ford';

propertyName = 'model';
myCar[propertyName] = 'Mustang';

Bir Nesnenin Özelliklerine (Anahtarlarına) Listelemek

ECMAScript 5’te başlayarak, nesne özelliklerini listelemek için üç yol vardır.

  • for…in
  • Object.keys(o)
  • Object.getOwnPropertyNames(0)

ECMAScript 5’ten önce, bir nesnenin tüm özelliklerini listelemek için yerel bir yol yoktu. Ancak, bu aşağıdaki kod ile sağlanabiliyordu.

function listAllProperties(o) {
	var objectToInspect;     
	var result = [];
	
	for(objectToInspect = o; objectToInspect !== null; objectToInspect = Object.getPrototypeOf(objectToInspect)) {  
      result = result.concat(Object.getOwnPropertyNames(objectToInspect));  
	}
	
	return result; 
}

Yeni Nesneler Oluşturmak

JavaScript’te kendi nesneler oluşturabileceğiniz çeşitli yollar vardır.

var object1 = {a:'foo', b:42, c:{});
var object2 = new Object({a:'foo', b:42, c:{}});
var object3 = Object.create({},{
        k:{
          value:1
       }
})

Kaynaklar :

https://developer.mozilla.org

0 cevaplar

Cevapla

Want to join the discussion?
Feel free to contribute!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir