JavaScript Nesne Oluşturmak ( OOP )

Neredeyse her projemizde javascript kullanıyoruz. Peki OOP yapısını javascript yazarken de kullanıyor muyuz? Cevap hayır ise; bir yerden başlamak gerekiyor. Gelin nasıl nesne oluşturabildiğimize bir bakalım.
function makale(baslik,kategori,icerik) {
            this.baslik = baslik;
            this.kategori = kategori;
            this.icerik = icerik;
        }
   Gördüğünüz gibi, nesnemizi bir function olarak oluşturduk. Aldığımız parametreleri makale adlı nesnemize(function) property olarak atadık.

   Şimdi de nesnemizi nasıl kullanacağımıza bir bakalım.

var m = new makale('Javascript Nesne Oluşturmak', 'Javascript', 'Makale içeriği girilecek..');
            alert('Başlık : ' + m.baslik + '\n' +
                  'Kategori : ' + m.kategori + '\n' +
                  'İçerik : ' + m.icerik);

   Buraya kadar hiçte farklı birşey olmadığını gördük. Gerek nesne oluşturmak gerekse nesnemizin bir instance ını oluşturmak için çok farklı şeyler yapmadık. Eğer bir programlama dili biliyorsak ki biliyoruz :) hiç zorlanmayacağız.

   Peki çok kullandığımız bir şey daha var, biz genellikle nesnelerimizi oluşturduğumuzda object sınıfına ait olan ToString metodunu ezerek(override) nesnemize uygun bir geri dönüş değeri oluştururuz. Bunu javascript'te nasıl yapacağımıza bir bakalım şimdi ;

function makale(baslik,kategori,icerik) {
            this.baslik = baslik;
            this.kategori = kategori;
            this.icerik = icerik;
            this.toString = function() { return this.baslik; };
        }

   Gördüğünüz gibi javascript dilinde nesnelere ait olan toString metodunu bir function ile değiştirdik kendi nesnemiz için. Artık oluşturduğumuz nesne için toString metodunu çağırdığımızda nesnemizin baslik propertysini döndürecektir.

function getir() {
            var m = new makale('Javascript Nesne Oluşturmak', 'Javascript', 'Makale içeriği girilecek..');
            alert('Başlık : ' + m.baslik + '\n' +
                  'Kategori : ' + m.kategori + '\n' +
                  'İçerik : ' + m.icerik+'\n'+
                  'toString : '+m.toString());
        }


Yorumlar