1. Kurucu Fonksiyon ile nesne oluşturmak (Constructing an Object with a Constructor Function)
nesne oluşturmanın ilk yöntemidir.
function Book(title, author, published, hasMovie) { this.title = title; this.author = author; this.published = published; this.hasMovie = hasMovie; this.display = function() { console.log(this); }; } var book1 = new Book("The Hound of the Baskervilles", "Sir Arthur Conan Doyl e", 1901, true); book1.display();
Kurucu fonksiyon diğer fonksiyonlara benze fakat kurucu fonksiyonları diğer fonksiyonlardan farklı bir yöntemle çağırırız (invoke ederiz.) new anahtar kelimesini kullanarak çağırırız.
new anahtar kelimesi fonksiyonu kod çalıştırmak yerine kurucu nesne oluşturmak için kullanacağımızı belirtir. (aynı zamanda içerikte bulunan kod çalıştırılır)
Kurucu fonksiyon içinde nesneye atıfta bulunmak için this anahtar kelimesi kullanılır.
this anahtar kelimesi ile belirtilen öğeler publicdir. fonksiyon içinde var ile tanımlananlar ise private dir. Kurucu fonksiyonlarda bilgi gizleme (encapsulation) yapılabilir.
Kurucu fonksiyonlarda return kullanımına gerek yoktur. Javascript programcı yerine otomatik olarak bu işlevi yapar.
Bir fonksyion kurucu fonksiyon olmadan da geriye nesne döndürebilir.
function makeObj() { return { x: 1 }; }
Yukarıdaki örnekte makeObj bir kurucu fonksiyon değildir. Çünkü new anahtar kelimesi ile çağırmadık. Normal fonksiyon olarak çağırdık return ifadesi ile literal olarak oluşturulan nesne döndürüldü.
Alışkanlık olarak kurucu fonksiyonlar büyük harfle başlar, normal fonksiyonlar ile küçük harfle başlar.
bir instance in kurucu fonksiyonuna ulaşmak için instancename.constructor yazılır
kapsüllemeye örnek
2. Literal kullanarak nesne oluşturma (Constructing an Object Using a Literal)
singleton class gibidir. Bir kez oluşturulur. new keywordü ile instance almaya gerek kalmadan static class gibi property ve methodlarına dışarıdan erişilebilir.
Tüm öğeleri public dir.
var book2 = { title: "The Adventures of Sherlock Holmes", author: "Sir Arthur Conan Doyle", published: 1892, movie: true,
display: function() { console.log(this); } };
kurucu fonksiyonla oluşturduğunuz nesnenin bir çok örneğini alabilirsiniz (instance). Literal notasyonda ise sadece bir örnek alabilirsiniz. bir nesneyi birden çok oluşturmak gerekiyorsa kurucu fonksiyonla nesneyi oluşturmak gerekir. Sadece bir kez oluşturmak yeterli ise literal notasyon bu işlevi yerine getirir.
3. Genel Bir Nesne Oluşturucu Kullanarak Bir Nesnenin Oluşturulması (Constructing an Object Using a Generic Object Constructor)
Literal nesne oluşturmanın diğer yolu, boş bir nesne ile başlamak lazım oldukça eklemektir.
İki yöntemle boş bir nesne oluşturabilirsin.
var obj1 = { }; var obj2 = new Object();
oluşturdukdan sonra öğe tanımlama
4. Dizi Nesneleri Oluşturmak (Constructing Array Objects)
Diziler nesnedir.
dizi nesnesi oluşturmanın iki yolu vardır
a. Array kurucu fonksiyonu
b. Literal notasyon
Diğer nesneler gibi, dizi için kurucu fonksiyonu incelemek için constructor komutunu kullanabilirsin. a2.constructor
.
Hiç yorum yok:
Yorum Gönder