Sembol türü #9

Belirtime göre, nesne özellik anahtarları dize türünden veya sembol türünden olabilir. Sayı değil, boolean değil, yalnızca dizeler veya semboller, bu iki tür. Şimdiye kadar sadece dizeleri kullanıyorduk. Şimdi sembollerin bize sağlayabileceği faydaları görelim. Semboller Bir “symbol” benzersiz bir tanımlayıcıyı temsil eder. Symbol() kullanılarak bu türden bir değer oluşturulabilir: Oluşturulduktan sonra, sembole, çoğunlukla hata ayıklama amaçları […]

Belirtime göre, nesne özellik anahtarları dize türünden veya sembol türünden olabilir. Sayı değil, boolean değil, yalnızca dizeler veya semboller, bu iki tür.

Şimdiye kadar sadece dizeleri kullanıyorduk. Şimdi sembollerin bize sağlayabileceği faydaları görelim.

Semboller

Bir “symbol” benzersiz bir tanımlayıcıyı temsil eder.

Symbol() kullanılarak bu türden bir değer oluşturulabilir:

image 2021 10 10 140825

Oluşturulduktan sonra, sembole, çoğunlukla hata ayıklama amaçları için yararlı olan bir açıklama (sembol adı da denir) verebiliriz:

image 2021 10 10 140832

Sembollerin benzersiz olması garanti edilir. Aynı açıklamaya sahip birçok sembol oluştursak bile bunlar farklı değerlerdir. Açıklama, hiçbir şeyi etkilemeyen bir etikettir.

Örneğin, burada aynı açıklamaya sahip iki sembol var – bunlar eşit değil:

image 2021 10 10 140842

“Gizli” özellikler

Semboller, kodun başka hiçbir parçasının yanlışlıkla erişemeyeceği veya üzerine yazamayacağı bir nesnenin “gizli” özelliklerini oluşturmamıza izin verir.

Örneğin, bir üçüncü taraf koduna ait olan kullanici nesneleri ile çalışıyorsak. Onlara tanımlayıcılar eklemek istiyoruz.

Bunun için bir sembol tuşu kullanalım:

image 2021 10 10 140850

Global semboller

Gördüğümüz gibi, aynı ada sahip olsalar bile genellikle tüm semboller farklıdır. Ancak bazen aynı adlı sembollerin aynı varlıklar olmasını isteriz. Örneğin, uygulamamızın farklı bölümleri, tamamen aynı özellik anlamına gelen “id” sembolüne erişmek istiyor.

Bunu başarmak için global bir sembol kaydı vardır. İçinde semboller oluşturabilir ve onlara daha sonra erişebiliriz ve aynı adla tekrarlanan erişimlerin tam olarak aynı sembolü döndürmesini garanti eder.

Kayıt defterinden bir sembolü okumak (yoksa oluşturmak) için Symbol.for(key) kullanın.

Bu çağrı global kayıt defterini kontrol eder ve eğer anahtar olarak tanımlanan bir sembol varsa onu döndürür, aksi takdirde yeni bir sembol Symbol(key) oluşturur ve verilen anahtarla kayıt defterinde saklar.

Örneğin:

image 2021 10 10 140857

Kayıt defterindeki sembollere genel semboller denir. Kodun her yerinden erişilebilen, uygulama genelinde bir sembol istiyorsak, bunlar bunun içindir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir