JavaScript yerleşik bir dildir ancak ES6'da yalnızca klasik nesne yönelimli programlama (OOP) için destek eklemiştir. JavaScript, sınıf bildirimleri gibi özellikler ekleyene kadar OOP'yi daha az bilinen bir prototip tabanlı paradigma kullanarak ele alıyordu. Ancak her iki yaklaşımla da nesne tabanlı özellikleri kullanan karmaşık uygulamalar oluşturabilirsiniz.

Prototip JavaScript'teki bir oluşturucu, diğer herhangi bir işleve çok benzer. Ana fark, bu yapıcı işlevini nesneler oluşturmak için kullanabilmenizdir.

JavaScript'te Yapıcı Nedir?

Yapıcılar bunlardan biridir nesne yönelimli programlamanın temel kavramları. Yapıcı, bir nesnenin örneğini oluşturmak için kullanabileceğiniz bir işlevdir. Yapıcı, yeni bir nesne yaratmanın yanı sıra ona ait olacak özellikleri ve davranışları da belirtir.

Yapıcı Sözdizimi

işlevYapıcının Adı() {
this.özellik1 = "Özellik1";
this.özellik2 = "Özellik2";
this.özellik3 = "Özellik3";
}

İle bir yapıcı oluşturabilirsiniz. işlev anahtar kelime çünkü esasen diğer herhangi bir işlev gibi. Ancak, inşaatçılar aşağıdaki kurallara uyar:

instagram viewer
  1. Bunları diğer işlevlerden ayırmak için oluşturucunuz için büyük harfle başlayan bir ad kullanın.
  2. Yapıcılar kullanır Bu anahtar kelime farklı. Bir yapıcının içinde, Bu yapıcının oluşturacağı yeni nesneyi ifade eder.
  3. JavaScript işlevlerinin aksine, yapıcılar, değer döndürmek yerine özellikleri ve davranışları tanımlar.

Yeni Nesneler Oluşturmak için Yapıcı Kullanma

JavaScript'te, bir nesne oluşturmak için yapıcı kullanmak kolay bir iştir. İşte onu takip eden bir çağırma ile basit bir kurucu:

işlevÖğrenci() {
bu.isim = "Gloria";
this.cinsiyet = "Dişi";
Bu.yaş = 19;
}

izin vermek bayanÖğrenci = yeni Öğrenci();

Bu örnekte, bayanöğrenci tarafından oluşturulan bir nesnedir. Öğrenci yapıcı Kullan yeni işlevi yapıcı olarak çağırmak için anahtar kelime. Bu anahtar kelime, JavaScript'e yeni bir örnek oluşturmasını söyler. Öğrenci. olmadan bu işlevi çağırmamalısınız. yeni anahtar kelime çünkü Bu yapıcının içinde yeni bir nesneye işaret etmez. İnşaattan sonra, bayanöğrenci tüm özelliklere sahiptir Öğrenci. Bu özelliklere tıpkı diğer nesnelerde yaptığınız gibi erişebilir ve bunları değiştirebilirsiniz.

JavaScript Yapıcıları Hakkında Bilmeniz Gereken Önemli Şeyler

İnşaatçılarla çalışmak çok yorucu olabilir ve aynı zamanda kolay bir iş olabilir. İşte her geliştiricinin yapıcılarla çalışma hakkında bilmesi gereken bazı önemli şeyler.

Yapıcıları Bağımsız Değişkenlerle Kullanma

Argümanları almak için bir yapıcıyı genişletebilirsiniz. Duyarlı, esnek kod yazmak istiyorsanız bu çok önemlidir.

Bir oluşturucudan bir nesne oluşturduğunuzda, nesne, oluşturucuda bildirilen tüm özellikleri devralır. Örneğin, bayanöğrenci yukarıda oluşturduğunuz özelliklere sahip olacak isim, cinsiyet, Ve yaş sabit başlangıç ​​değerleri ile. Her özelliği manuel olarak değiştirebilseniz de, birçok nesne kullanarak bir program yazıyor olsaydınız, bu çok fazla iş olurdu.

Neyse ki, JavaScript oluşturucuları, diğer herhangi bir işlev gibi parametreleri kabul edebilir. değiştirebilirsiniz Öğrenci yapıcının iki parametreyi kabul etmesi:

işlevÖğrenci(isim / Cinsiyet) {
Bu.isim = isim;
Bu.cinsiyet = cinsiyet;
Bu.yaş = 19;
}

Yukarıdan oluşturulan tüm nesneler sahip olacak yaş ayarlanır 19. Tüm nesnelerin sahip olmasını istediğiniz bir özellik varsa, oluşturucunuzu bu şekilde tasarlayabilirsiniz.

Artık farklı bağımsız değişkenler ileterek aynı kurucudan benzersiz nesneler tanımlayabilirsiniz.

Bağımsız değişkenler, yapıcıları daha esnek hale getirir. Zamandan tasarruf sağlarlar ve temiz kodu teşvik ederler.

Nesne Yöntemlerini Tanımlama

Yöntem, işlev olan bir nesne özelliğidir. Yöntemler, nesnelerinize farklı davranışlar eklediğinden OOP'deki kodunuzu geliştirir. İşte bir örnek:

işlevÖğrenci(isim / Cinsiyet) {
Bu.isim = isim;
Bu.cinsiyet = cinsiyet;
Bu.yaş = 19 ;

Bu.sayAdı = işlev () {
geri dönmek`Benim adım ${isim}`;
}
}

Yukarıdaki işlevi ekler adı söyle yapıcıya.

Bir değişkende sakladığınız bir nesne oluşturmak için bu yapıcıyı kullandığınızı varsayalım, bayanöğrenci. Daha sonra bu işlevi aşağıdaki kodla çağırabilirsiniz:

bayanöğrenci.sayAdı()

prototip

Daha önce oluşturduğumuz Öğrenci tüm örneklerinin sahip olacağı bir şekilde yaş değeri olan özellik 19. Bu, her biri için yinelenen bir değişkene sahip olmakla sonuçlanacaktır. Öğrenci oluşturduğunuz örnek.

Bu yinelemeyi önlemek için JavaScript, prototip kavramını kullanır. Bir oluşturucudan oluşturulan tüm nesneler, prototipinin özelliklerini paylaşır. ekleyebilirsiniz yaş mülkiyet Öğrenci aşağıda gösterildiği gibi prototip:

Student.prototype.age = 19;

Bunu yaparak, tüm örnekleri Öğrenci sahip olacak yaş mülk. ilan prototip özellikleri uygulamanızdaki yinelenen kodu azaltmanın bir yoludur. Kodunuzu olabildiğince standart hale getirir.

Bir Prototip Özelliği Bir Nesne Olabilir

Prototip özelliklerini yukarıda açıklandığı gibi ayrı ayrı ekleyebilirsiniz. Ancak eklenecek birçok özelliğiniz varsa, bu sakıncalı olabilir.

Alternatif olarak, ihtiyacınız olan tüm özellikleri yeni bir nesnede bulundurabilirsiniz. Bunu yaparak, tüm özellikleri bir kerede ayarlayacaksınız. Örneğin:

Öğrenci.prototip = {
yaş: 19,
ırk: "Beyaz",
sakatlık: "Hiçbiri"
}

ayarlamayı unutmayın inşaatçı özelliği, prototipleri yeni bir nesneye ayarlarken.

Öğrenci.prototip = { 
inşaatçı: Öğrenci,
yaş: 19,
ırk: "Beyaz",
sakatlık: "Hiçbiri"
}

Hangi yapıcı işlevinin bir örnek oluşturduğunu kontrol etmek için bu özelliği kullanabilirsiniz.

Süpertipler ve Kalıtım

Miras programcıların uygulamalarında hataları azaltmak için kullandıkları bir yöntemdir. Bu, bağlı kalmanın bir yolu Kendini tekrar etme (KURU) prensip.

Diyelim ki iki oluşturucunuz var—Öğrenci Ve Öğretmen- iki benzer prototip özelliği olan.

Öğrenci.prototip = { 
inşaatçı: Öğrenci,

adı söyle: işlev () {
geri dönmek`Benim adım ${isim}`;
}
}

Öğretmen.prototip = {
inşaatçı: Öğretmen,

adı söyle: işlev () {
geri dönmek`Benim adım ${isim}`;
}
}

Bu kurucuların her ikisi de adı söyle yöntem, aynı. Bu gereksiz tekrardan kaçınmak için, süper tip.

işlevBireysel Ayrıntılar(){};

IndividualDetails.prototype = {
inşaatçı: Bireysel Ayrıntılar,

adı söyle: işlev () {
geri dönmek`Benim adım ${isim}`;
}
};

daha sonra kaldırabilirsiniz adı söyle her iki kurucudan.

Özellikleri süper tipten devralmak için şunu kullanın: Nesne.create(). Her iki yapıcının prototipini süper tipin bir örneğine ayarlarsınız. Bu durumda, Öğrenci Ve Öğretmen bir IndividualDetails örneğine prototipler.

İşte burada:

Öğrenci.prototip = Nesne.create (IndividualDetails.prototype);
Öğretmen.prototip = Nesne.create (IndividualDetails.prototype);

Bunu yaparak, Öğrenci Ve Öğretmen süper tipin tüm özelliklerini devralır, Bireysel Ayrıntılar.

Bu, süper türleri kullanarak OOP'ta DRY'nin nasıl uygulanacağıdır.

Yapıcılar Oyun Değiştiricidir

Yapıcılar, JavaScript'in önemli bir bileşenidir ve işlevselliklerinde uzmanlaşmak, OOP JavaScript uygulamaları geliştirmek için çok önemlidir. Özellikleri ve yöntemleri paylaşan nesneler oluşturmak için bir oluşturucu kullanabilirsiniz. Nesne hiyerarşilerini tanımlamak için kalıtımı da kullanabilirsiniz.

ES6'da şunları kullanabilirsiniz: sınıf klasik nesne yönelimli sınıfları tanımlamak için anahtar kelime. JavaScript'in bu sürümü ayrıca bir inşaatçı anahtar kelime.