Yapıcı, new operatör #3

Normal {…} sözdizimi, bir nesne oluşturmaya izin verir. Ancak çoğu zaman birden çok kullanıcı veya menü öğesi vb. gibi birçok benzer nesne oluşturmamız gerekir. Bu, yapıcı işlevler ve “new” operatör kullanılarak yapılabilir. Yapıcı metot Yapıcı işlevleri teknik olarak düzenli işlevlerdir. Yine de iki sözleşme var: Önce büyük harfle adlandırılırlar. Yalnızca “new” operatörü ile çalıştırılmalıdırlar. Örneğin: […]

Normal {…} sözdizimi, bir nesne oluşturmaya izin verir. Ancak çoğu zaman birden çok kullanıcı veya menü öğesi vb. gibi birçok benzer nesne oluşturmamız gerekir.

Bu, yapıcı işlevler ve “new” operatör kullanılarak yapılabilir.

Yapıcı metot

Yapıcı işlevleri teknik olarak düzenli işlevlerdir. Yine de iki sözleşme var:

  1. Önce büyük harfle adlandırılırlar.
  2. Yalnızca “new” operatörü ile çalıştırılmalıdırlar.

Örneğin:

image 2021 09 19 175706

new ile bir işlev yürütüldüğünde, aşağıdaki adımları gerçekleştirir:

  1. Yeni bir boş nesne oluşturulur ve this atanır.
  2. İşlev gövdesi yürütülür. Genellikle this değiştirir, ona yeni özellikler ekler.
  3. this değeri döndürülür.

Yapıcı metot testi: new.target

Bir fonksiyonun içinde, özel bir new.target özelliğini kullanarak yeni ile mi yoksa onsuz olarak mı çağrıldığını kontrol edebiliriz.

Normal aramalar için tanımsızdır ve new ile çağrılırsa işleve eşittir:

image 2021 09 19 175759

Bu, fonksiyonun içinde new ile mi, “kurucu modunda” mı yoksa onsuz “normal modda” mı çağrıldığını bilmek için kullanılabilir.

Aynısını yapmak için hem new hem de normal aramalar yapabiliriz, aşağıdaki gibi:

image 2021 09 19 175812

Bu yaklaşım bazen sözdizimini daha esnek hale getirmek için kitaplıklarda kullanılır. Böylece insanlar işlevi new olsun veya olmasın çağırabilir ve hala çalışır.

Muhtemelen her yerde kullanmak iyi bir şey değil, çünkü new atlamak, neler olup bittiğini biraz daha az belirgin hale getiriyor. New ile hepimiz yeni nesnenin yaratıldığını biliyoruz.

Yapıcılardan dönüş

Genellikle, yapıcıların bir return deyimi yoktur. Görevleri, gerekli tüm şeyleri this yazmaktır ve otomatik olarak sonuç olur. Ancak bir return ifadesi varsa, kural basittir:

  • Bir nesne ile return çağrılırsa, this yerine nesne döndürülür.
  • Eğer return bir ilkel ile çağrılırsa, yok sayılır.

Başka bir deyişle, bir nesneyle return, o nesneyi döndürür, diğer tüm durumlarda this döndürülür.

image 12

Örneğin, burada return, bir nesne döndürerek this geçersiz kılar.

Bir cevap yazın

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