Modern JavaScript ES6’dan ES13’e kadar (JS Eğitimi)

JavaScript'te Özel Alanları Etkili Şekilde Kullanma

Eğitimdeki tüm videolar Modern JavaScript ES6–ES13 (JS öğretici)

ES6'nın tanıtımı ile birlikte JavaScript, artık sınıflarda özel alanlar tanımlama imkanı sunuyor. Bu, verilerin kapsüllenmesi ve dışarıdan istenmeyen erişimin engellenmesi açısından özellikle önemlidir. Bu eğitimde, verilerinizi güvende tutmak için özel alanları etkili bir şekilde nasıl uygulayacağınızı ve kullanacağınızı öğreneceksiniz.

En Önemli Noktalar

  • Özel alanlar hash işareti (#) ile tanımlanır.
  • Özel alanlara erişim yalnızca sınıf içinde mümkündür.
  • JavaScript, diğer programlama dillerinde olduğu gibi anahtar kelimeye dayalı bir görünürlük sunmaz.

Aşama Aşama Kılavuz

Sınıf Tanımlama ve Özel Üyeler Oluşturma

İlk olarak, bir sınıf oluşturacağız ve bir özel alan tanımlayacağız. Secret adında bir sınıfla başlıyoruz ve bu sınıf #secret adında bir özel alan içeriyor. Bu alan, dış erişimlere kapalı olan gizli bilgileri saklar.

JavaScript'te Özel Alanları Etkili Bir Şekilde Kullanma

Sınıfın Bir Örneğini Oluşturma ve Metodu Çağırma

Sonraki adımda, Secret sınıfının bir örneğini oluşturacağız ve özel alanın değerini yazdırmak için print() metodunu çağıracağız. Bu aşağıdaki gibi görünmelidir:

Dışarıdan Özel Alanlara Erişimi Deneme

Şimdi, dışarıdan #secret özel alanına doğrudan erişmeyi denediğinizde ilginç bir durum ortaya çıkıyor. Bunun çalışmadığını göreceksiniz. JavaScript derleyicisi, kodu yazarken size uyarıda bulunacaktır.

mySecret.#secret yazdığınızda, Visual Studio Code'da bir hata mesajı alırsınız. Bu, özel alanların aslında amacını yerine getirdiğini gösterir: Sınıf dışından erişim mümkün değildir.

Object Keys ile Görünürlüğü Kontrol Etme

İyi bir test yöntemi, Object.keys() kullanarak özel alanın gösterilip gösterilmediğini kontrol etmektir. Eğer örneğin anahtarlarını listelemeye çalışırsanız, #secret'in listelenmediğini görmelisiniz.

Özel alanın listelenmediğini görüyorsunuz. Böylece, JavaScript'te veri kapsülleme avantajı ortaya çıkıyor.

Önceki Konvansiyonlarla Fark

Daha önce, özel alanları belirtmek için çift alt çizgi kullanma konvansiyonları vardı. Ancak bu yöntem gerçekten çalışmaz, çünkü özel özelliklere erişimden koruma yoktur. Hash işareti ile özel alanların tanıtılmasıyla artık özel değişkenleri tanımlamak için temiz ve etkili bir yönteminiz var.

Statik Özel Alanlar Oluşturma

Ayrıca, sınıfınızda statik özel alanlar da tanımlayabilirsiniz. Bu, örnek değişkenlerdeki gibi benzer bir şekilde çalışır, ancak başlatma sırasında biraz farklı bir yaklaşım gerektirir.

console.log(Secret.getPrivateStaticField()); // Çıktı: "Ben özelim"

Burada dikkat edilmesi gereken, statik erişimi sınıf adı sözdizimi ile gerçekleştirmektir.

Sonuç

JavaScript sınıflarında özel alanları kullanarak, önemli verilerin yalnızca sınıf içindeki işlemlerle sınırlı olmasını sağlayabilirsiniz. Bu, veri yapılarınızın kapsülenmesi ve güvenliği için büyük bir avantajdır. Artık özel alanların nasıl uygulandığını, dışarıdan nasıl erişildiğini ve veri kapsüllemeyi etkili bir şekilde nasıl koruyacağınızı öğrendiniz.

Özet – JavaScript Sınıflarında Özel Alanları Etkili Şekilde Kullanma

Bu kılavuzda, JavaScript sınıflarında özel alanların uygulanması ve kullanılması sürecini öğrendiniz. Özel alanların hash işareti (#) ile tanımlandığını ve dışarıdan erişimin mümkün olmadığını şimdi biliyorsunuz.

Sıkça Sorulan Sorular

JavaScript’te özel alanlar nedir?Özel alanlar, sınıfın özellikleridir ve dışarıdan erişilemez, yalnızca sınıf içinde işlenebilirler.

Bir özel alanı nasıl tanımlarım?Bir özel alan, adından önce hash işareti (#) koyarak tanımlanır, örneğin #benimÖzelAlanım.

Özel alanları statik olarak tanımlayabilir miyim?Evet, özel alanları statik olarak tanımlamak için static #alanAdı sözdizimini kullanabilirsiniz.

Özel alanlar neden önemlidir?Özel alanlar, verilerinizi dışarıdan yetkisiz erişimden korur ve nesne yönelimli programlamada kapsulamayı teşvik eder.

Özel alanlara erişim nasıl çalışır?Özel alanlara sadece sınıf içinde erişilebilir. Dış bir betik veya başka bir kod doğrudan erişemez.