JavaScript'te nesneler (objects), verileri gruplamak ve düzenlemek için kullanılan karmaşık veri türleridir. Bir nesne, özellik (property) ve değer (value) çiftlerinden oluşan bir koleksiyondur. İşte JavaScript'te nesneleri oluşturmanın ve kullanmanın temel syntax'ı:
Nesne Oluşturma
1. Nesne Literal Notasyonu:
2. Object Constructor Kullanarak Nesne Oluşturma:
JavaScript'te new Object() ifadesini kullanarak bir nesne oluşturabilirsiniz. Ancak, genellikle daha kısa ve yaygın olarak tercih edilen bir yöntem olan obje literal notasyonu ({}) kullanılır. Ancak new Object() ifadesini kullanmanın örnek bir kullanımını aşağıda bulabilirsiniz:
Nesne Özelliklerine Erişim
Nesne Metotları
Bu örnekler, JavaScript'te nesnelerin nasıl oluşturulacağını, özelliklere nasıl erişileceğini ve nesne metotlarının nasıl tanımlanacağını göstermektedir. Nesneler, JavaScript programlamasında önemli bir yapı taşıdır ve geniş bir kullanım alanına sahiptir.
Objelerin Primitive Çevirileri
JavaScript'teki nesnelerin ilkel (primitive) veri tiplerine çevirileri genellikle toString ve valueOf metodları aracılığıyla gerçekleştirilir. İşte bu konsepti anlamak için birkaç örnek:
1.toString Metodu: toString metodu, bir nesnenin dize temsilini oluşturur. Bir nesne üzerinde bu metot çağrıldığında, JavaScript bu metodu kullanarak nesneyi bir dizeye çevirir.
2.valueOf Metodu: valueOf metodu, bir nesnenin ilkel değerini döndürür. Bu, nesnenin asıl değerini (ilkel bir veri türü) almanızı sağlar.
Bu örneklerde, Number gibi nesnelerin toString ve valueOf metodlarını kullanarak ilkel çevirileri gerçekleştirilebiliyor. Ancak, genellikle JavaScript, konteksteki beklentilere göre otomatik olarak bu dönüşümleri gerçekleştirir. Örneğin, bir sayısal ifade bir dize ile birleştirildiğinde, JavaScript otomatik olarak sayıyı dizeye çevirir.
Bu örneklerde, JavaScript otomatik olarak sayıyı dizeye çevirir çünkü sayı, dize ile birleştirilmeye çalışılıyor. Bu tür durumlar, JavaScript'in otomatik tür dönüşümlerini kullanarak kodun daha anlaşılır ve kısa olmasını sağlar.
JavaScript'te, objelerin ilkel tipe çevrilmesi çeşitli ipuçlarına (hint) dayanır. İpuçları, özellikle bir nesnenin bir ilkel tipe dönüştürülmesini bekleyen fonksiyonlar veya operatörler tarafından belirtilir. Üç temel ipucu şunlardır: "string" (örneğin, alert ve diğer karakter çevrimleri), "number" (matematiksel işlemler), ve "default" (bazı operatörler).
Çevirme işlemi şu adımları izler:
- Eğer obj[Symbol.toPrimitive](hint) metodu tanımlı ise, bu metot çağrılır.
- Eğer Symbol.toPrimitive metodu tanımlı değilse ve ipucu "string" ise, önce obj.toString() ve ardından obj.valueOf() metotları çağrılır (hangisi tanımlıysa).
- Eğer ipucu "number" veya "default" ise, önce obj.valueOf() ve ardından obj.toString() metotları çağrılır (hangisi tanımlıysa).
- Genellikle, tüm çevirim işlemlerini kapsayan tek bir "hepsini yakala" metodu kullanılır. Bu, nesnenin insan tarafından okunabilir bir gösterimini üretmek için kullanılabilir ve loglama amacıyla da oldukça yararlıdır.
Bu esnek çevirme algoritması, JavaScript'in nesneleri farklı bağlamlarda kullanılırken otomatik olarak ilkel tiplere dönüştürmesine olanak tanır. İpuçları, beklenen çevrim türünü belirtir ve bu nedenle programcıya kontrol ve anlam sağlar.
Yapıcı, "new" Operatörü ve Yapıcı Fonksiyonlar
JavaScript'te, bir nesnenin benzerlerini yaratmak istediğimizde yapıcı fonksiyonlar ve "new" operatörü kullanılır. Bu yöntem, özellikle farklı kullanıcılar veya menü değerleri gibi farklı objeler oluşturmak için kullanışlıdır.
Yapıcı Fonksiyonlar (Constructors)
Yapıcı fonksiyonlar, teknik olarak normal JavaScript fonksiyonlarıdır, ancak bazı özel özelliklere sahiptirler:
- Adları genellikle büyük harfle başlar.
- Sadece "new" operatörü kullanıldığında çalışırlar.
Örnek olarak:
Fonksiyon new Kullanici(...) şeklinde çağrıldığında, aşağıdaki adımlar izlenir:
- Yeni bir obje oluşturulur ve this bu objeyi referans alır.
- Fonksiyon gövdesi çalıştırılır; genellikle this modifiye edilir ve yeni özellikler eklenir.
- this değeri döndürülür.
Bu nedenle, new Kullanici("Akın") ifadesi aşağıdaki objeyi oluşturur:
Yapıcı fonksiyonlar, tekrar kullanılabilir objeler oluşturmanın bir yolunu sağlar.
Yapıcı Modu Testi: new.target
Fonksiyon içinde, bu fonksiyonun "new" ile mi yoksa "new" olmadan mı çağrıldığını anlamak için new.target özelliği kullanılabilir.
new.target kullanarak, fonksiyonun nasıl çağrıldığını kontrol edebilir ve gerektiğinde düzeltebiliriz.
Yapıcı Metodun return Sözcüğü
Genellikle, yapıcı metodların return sözcüğü yoktur. Ancak, varsa, kurallar şu şekildedir:
- Eğer return ile bir obje döndürülüyorsa, bu obje yerine this döndürülür.
- Eğer return ile ilkel bir değer döndürülüyorsa, görmezden gelinir.
Bu durumda, obje ile return kullanıldığından, obje döndürülür.
Yorum Yap