Oldukça dinamik programlama dilleri ördek yazma özelliğine sahip olduklarından ve istedikleri zaman ( Ruby ve Python gibi ) sınıf veya örnek yöntemlerini açıp değiştirebilirler .
Soru 1) Dinamik bir dilde bir sınıfa ihtiyaç var mı? Dil neden bir sınıfı prototip yapmak yerine bir çeşit “şablon” olarak kullanmak ve sadece bir nesne kullanmak için tasarlanmıştır?
Ayrıca JavaScript prototip temellidir, ancak CoffeeScript (JavaScript'in geliştirilmiş sürümü) sınıf tabanlı yolu seçer. Lua (prototip tabanlı) ve MoonScript (sınıf tabanlı) için de aynı şey geçerli . Ayrıca, ES 6'da sınıf var.
Soru 2) Prototip tabanlı bir dili geliştirmeye çalışırsanız, diğer şeylerin yanı sıra, onu sınıf tabanlı olarak değiştirmeniz gerektiğini mi tavsiye ediyor? Eğer değilse, neden bu şekilde tasarlandı?
class
sonraki ECMAScript standardından (ECMAScript 6) itibaren anahtar kelimeyi desteklemektedir . JavaScript'te sınıflar için destek uzun süredir planlanmıştır. Şimdi, ne olduğu için - sınıflar sadece sözdizimsel şekerdir, aynı tip nesneler için model hakkında akla gelmesi daha kolaydır. JS'de bu şekildedir ve Python'da ve diğer dinamik dillerde de böyledir.